Image Docker : Intégration de PHP 8.0, Apache et phpMyAdmin
P粉186017651
P粉186017651 2024-03-31 18:19:17
0
1
478

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 mysqlidocker-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.

P粉186017651
P粉186017651

répondre à tous(1)
P粉541551230

Grâce au commentaire de Lety, il suffit de changer la ligne 4 de docker-compose.yml Auteur :

build: ./php

(indique le répertoire où se trouve le Dockerfile) et ça marche.

CV : Ne pas modifier le Dockerfile . Changez le docker-compose.yml Auteur :

version: '3.8'
services:
  php-apache-environment:
    container_name: php-apache
    build: ./php
    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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal