Saya sedang mencipta imej untuk projek php8 yang dijalankan pada apache dan menggunakan phpMyAdmin, fail Docker saya adalah seperti berikut:
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
Docker-compose.yml saya adalah seperti berikut:
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
Bagi saya, semuanya baik-baik saja, tetapi apabila saya menjalankan "docker compose up --build", bekas itu bermula tetapi dia tidak memasang "mysqli" dan "pdo_mysql" seperti yang saya minta dalam Dockerfile.
Tetapi jika saya log masuk ke dalam bekas PHP melalui CLI dan menjalankan docker-php-ext-install mysqli
和 docker-php-ext-install pdo_mysql
ia berfungsi dan saya hanya memulakan semula bekas PHP.
Tapi, tak tahu kenapa, dari awal tak boleh install?
Terima kasih atas bantuan anda.
Terima kasih kepada komen Lety, kami hanya perlu menukar baris 4 docker-compose.yml Pengarang:
(menunjukkan direktori di mana Dockerfile terletak) dan ia berfungsi.
Sambung semula: Jangan tukar Dockerfile . Tukar docker-compose.yml Pengarang: