Docker compose utiliza la misma versión de PHP entre los contenedores.
Tengo contenedores nginx, php y codecept que están conectados con Docker Compose, cuando ejecuto el contenedor de codecept, noto que obtiene la versión de php 7.4, mientras que en mi contenedor de php estoy ejecutando php 8 y muchos de los paquetes dependen de php 8, por lo que falla al iniciarse.
¿Es posible hacer que codecept ejecute php desde mi contenedor?
¿O es posible configurar codecept para que ejecute la misma versión de php?
Este es mi archivo docker-compose.yml:
version: '3'
services:
web:
build:
context: ./
dockerfile: ./dockerfiles/nginx
args:
NGINX_VERSION: latest
container_name: nginx
volumes:
- ./html:/var/www/html:cached
ports:
- "80:80"
- "443:443"
networks:
- my-network
restart: always
depends_on:
- php
codecept:
image: codeception/codeception
container_name: codeception
depends_on:
- web
volumes:
- ./html:/project
networks:
- my-network
php:
build:
context: ./
dockerfile: ./dockerfiles/php
args:
PHP_VERSION: 8.0.10
container_name: php
ports:
- 9000:9000
networks:
- my-network
restart: always
volumes:
- ./html:/var/www/html:cached
networks:
my-network: null
davy.ai
Sí, es posible ejecutar Codeception con PHP desde el mismo contenedor.
Puede configurar la versión de PHP para el contenedor de Codecept especificando la
imagen
que se utilizará en el archivodocker-compose.yml
. Por ejemplo, si desea usar PHP 8 para el contenedor de Codecept, puede especificar laimagen
de la siguiente manera:Alternativamente, también puede utilizar un Dockerfile personalizado para el contenedor de Codecept que se base en la misma imagen de PHP que el contenedor de php. Aquí hay un ejemplo de cómo podría ser su Dockerfile para el contenedor de Codecept:
Este Dockerfile instala las extensiones y dependencias necesarias, y copia los archivos del proyecto de Codecept dentro del contenedor.
Una vez que haya actualizado el archivo
docker-compose.yml
o creado el Dockerfile para el contenedor de Codecept, puede reconstruir sus contenedores utilizando el siguiente comando:docker-compose up --build
Esto reconstruirá sus contenedores y actualizará el contenedor de Codecept para usar la misma versión de PHP que el contenedor de php.