Je crée une image pour un projet php8 exécuté sur Apache et utilisant phpMyAdmin, mon Dockerfile est le suivant :
FROM php:8.0-apache RUN apt-get update -y && apt-get install -y libmariadb-dev && docker-php-ext-install mysqli && docker-php-ext-install pdo_mysql WORKDIR /var/www/html
Mon docker-compose.yml est le suivant :
services: php-apache-environment: container_name: php-apache image: php:8.0-apache volumes: - ./php/src:/var/www/html/ ports: - 8000:80 db: container_name: db image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: MYSQL_ROOT_PASSWORD MYSQL_DATABASE: MY_DATABASE MYSQL_USER: MYSQL_USER MYSQL_PASSWORD: MYSQL_PASSWORD ports: - "9906:3306" phpmyadmin: image: phpmyadmin:latest ports: - '8080:80' restart: always environment: PMA_HOST: db depends_on: - db
Pour moi, tout allait bien, mais lorsque j'ai exécuté "docker compose up --build", le conteneur a démarré mais il n'a pas installé "mysqli" et "pdo_mysql" comme je l'avais demandé dans le Dockerfile.
Mais si je me connecte au conteneur PHP via la CLI et que j'exécute docker-php-ext-install mysqli
和 docker-php-ext-install pdo_mysql
cela fonctionne et je redémarre simplement le conteneur PHP.
Mais, je ne sais pas pourquoi, je n'arrive pas à l'installer depuis le début ?
Merci pour votre aide.
Grâce au commentaire de Lety, il suffit de changer la ligne 4 de docker-compose.yml Auteur :
(indique le répertoire où se trouve le Dockerfile) et ça marche.
CV : Ne pas modifier le Dockerfile . Changez le docker-compose.yml Auteur :