Una vez tienes dockerizada tu aplicación, lo siguiente que querrás hacer, como para terminar de dejar atrás el viejo XAMPP, será acceder a tu base de datos en forma gráfica, ¿cierto?.
Asumiré que tienes un archivo docker-compose.yml similar a este:
version: '3.8' services: db: image: 'mysql:5.7.42-debian' environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=ruko - MYSQL_USER=ruko - MYSQL_PASSWORD=ruko restart: always volumes: - 'db-data:/var/lib/mysql' webserver: image: 'ruko_dev' user: 'www-data' build: context: '.' restart: always ports: - '8888:80' volumes: - './app/:/var/www/html/' volumes: db-data: {}
Con lo cual, al hacer docker-compose up
:
- Tendrás acceso a tu sitio a través de
http://localhost:8888
- Cada cambio que realices se reflejará automáticamente al recargar la página
Lo que faltaría sería poder ingresar a alguna dirección local (Por qué no http://localhost:9999
) y ver algo como:
Como de costumbre, existen varias opciones para lograrlo. La que considero más conveniente es crear un nuevo contenedor que pueda ejecutar phpMyAdmin. Veámoslo.
phpMyAdmin en un contenedor nuevo
Básicamente, lo que se necesita es un nuevo contenedor que contenga un servidor web y pueda conectarse a la base de datos que tiene tu entorno.
Qué mejor para ello que usar una imagen estándar de phpMyAdmin, ¿no?
En otras palabras, basta con ejecutar un comando del estilo:
docker run --name phpmyadmin -d --network dockerized_rukovoditel_342_default -p 9999:80 phpmyadmin
La red dockerized_rukovoditel_342_default
corresponde a la red creada durante la ejecución de docker-compose up
en mi ambiente, en el tuyo seguramente será algo diferente. En todo caso, siempre puedes usar docker network ls
para averiguarlo.
Con esto ya tenemos lo suficiente como para ingresar a http://localhost:9999
y trabajar cómodamente con phpMyAdmin.
Claro que tener que usar este comando no es lo más práctico del mundo, ¿no?
Completemos el trabajo metiendo la nueva configuración dentro del docker-compose.yml
.
phpMyAdmin en un contenedor nuevo manejado por docker-compose
Como podrás imaginar, sólo se trata de traducir la llamada directa al cliente de docker a la sintaxis YAML utilizada por docker-compose. Es decir, se trata de sumar esta definición a la sección services
del archivo docker-compose.yml
:
pma: image: 'phpmyadmin' ports: - '9999:80' restart: always
Para probarlo todo basta con ejecutar docker-compose down
y docker-compose up
.