Tengo un contenedor docker php que ejecuta mi aplicación y necesito comenzar a usar Composer para instalar un paquete php. ¿Cuál es la mejor manera de abordarlo?
Los archivos fuente se pueden encontrar aquí:
https://github.com/ikknd/docker-study en la carpeta receta-05
Técnicamente, esto funciona, instalo Composer en mi imagen php, y cada vez que necesito actualizar o instalar dependencias, simplemente ejecuto llamadas en mi contenedor php personalizado.
Problemas:
Usaré ideas de la receta 02 - página php simple y receta 04 - configuración de redis .
Cree el archivo docker-compose.yml en la carpeta "docker":
Aquí hago varias cosas:
El objetivo aquí es usar la biblioteca del compositor - "predis/predis" (solo como ejemplo). Esta biblioteca debe instalarse una vez que se inicia el contenedor "compositor".
Puedo ir a /var/www/docker-study.loc/recipe-05/docker/ y ejecutar:
docker-compose up -d
Ahora vaya a myapp.loc/ y vea "¡funciona!"
Cuando se inició el contenedor del compositor, ejecutó el comando "instalar compositor" y luego salió. Puedo confirmar esto ejecutando: "docker container ls -a" - esto mostrará que el contenedor "docker_composer_1" ha salido.
Si lo hago, "docker logs docker_composer_1" , puedo ver información sobre lo que sucedió cuando se inició el contenedor y cómo fue el proceso de "instalación del compositor".
¿Qué sucede si cambio el archivo composer.json y necesito instalar una biblioteca adicional?
docker-compose restart composer
Esto iniciará este contenedor nuevamente, ejecutará la instalación y saldrá.
¿Qué sucede si necesito ejecutar "actualización del compositor" en lugar de "instalación del compositor" ?
Puedo cambiar "instalar" -> "actualizar" en docker-compose.yml y ejecutar "docker-compose restart composer"