OCI Artifact - Deploy directly from GitHub Container Registry
phpMyAdmin is a free, open-source web-based database administration tool for MySQL and MariaDB. This stack provides a production-ready instance with Traefik integration and support for connecting to any MySQL/MariaDB server.
This is a Docker Compose OCI artifact, not a traditional Docker image. It contains a complete docker-compose.yml configuration that you can deploy directly using Docker 25.0+.
# 1. Create environment file
cat > .env.phpmyadmin << 'EOF'
COMPOSE_PROJECT_NAME=phpmyadmin
SERVICE_DOMAIN=pma.example.com
PMA_VERSION=5.2.3
EOF
# 2. Deploy
bc phpmyadmin up
# 3. Check status
bc phpmyadmin psNote: Install the bc CLI with:
curl -fsSL https://raw.githubusercontent.com/beevelop/beecompose/main/scripts/install.sh | sudo bash
# 1. Create environment file
cat > .env.phpmyadmin << 'EOF'
COMPOSE_PROJECT_NAME=phpmyadmin
SERVICE_DOMAIN=pma.example.com
PMA_VERSION=5.2.3
EOF
# 2. Deploy from GHCR
docker compose -f oci://ghcr.io/beevelop/phpmyadmin:latest --env-file .env.phpmyadmin up -d --pull always
# 3. Check status
docker compose -f oci://ghcr.io/beevelop/phpmyadmin:latest --env-file .env.phpmyadmin ps- Docker 25.0+ (required for OCI artifact support)
- Docker Compose v2.24+
- Traefik reverse proxy (see traefik)
- MySQL or MariaDB server to manage
| Container | Image | Purpose |
|---|---|---|
| phpmyadmin | phpmyadmin/phpmyadmin:5.2.3 | Web-based MySQL administration |
| Variable | Description | Example |
|---|---|---|
SERVICE_DOMAIN |
Domain for Traefik routing | pma.example.com |
| Variable | Description | Default |
|---|---|---|
COMPOSE_PROJECT_NAME |
Docker Compose project name | phpmyadmin |
PMA_VERSION |
phpMyAdmin image version | 5.2.3 |
These are set in the docker-compose.yml:
| Variable | Value | Purpose |
|---|---|---|
PMA_ARBITRARY |
1 |
Allow connecting to any MySQL server |
PMA_ABSOLUTE_URI |
https://${SERVICE_DOMAIN} |
Correct URL generation behind proxy |
- Navigate to
https://pma.example.com - Enter the MySQL server hostname (e.g.,
mysql,db.example.com, or IP address) - Enter your MySQL username and password
- Click "Go" to connect
If your MySQL container is on the same Docker network:
- Use the container name as the server (e.g.,
mysql) - Ensure both containers share a network (add phpMyAdmin to your MySQL network)
To connect to MySQL containers in other stacks, add the target network:
# Add to your docker-compose override
networks:
mysql:
external:
name: mysql_mysqlbc phpmyadmin logs -f # View logs
bc phpmyadmin restart # Restart
bc phpmyadmin down # Stop
bc phpmyadmin update # Pull and recreate# Define alias for convenience
alias dc="docker compose -f oci://ghcr.io/beevelop/phpmyadmin:latest --env-file .env.phpmyadmin"
# View logs
dc logs -f
# Restart
dc restart
# Stop
dc down
# Update
dc pull && dc up -d- Verify MySQL server is running and accessible
- Check if phpMyAdmin can reach the MySQL network
- For external servers, ensure firewalls allow the connection
Verify PMA_ABSOLUTE_URI matches your actual domain with HTTPS.
Ensure Traefik is correctly forwarding headers. The PMA_ABSOLUTE_URI setting helps resolve proxy-related issues.
Check logs with dc logs phpmyadmin and ensure all required environment variables are set.