我正在为运行在apache上的php8项目创建一个映像,并使用phpMyAdmin,我的Dockerfile如下所示:
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我的船坞-Compose.yml如下:
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对我来说,一切都很好,但是当我运行“Dockerfile -build”时,容器就启动了,但是他没有像我在Dockerfile中请求的那样安装"mysqli“和"pdo_mysql”。
但是,如果我通过CLI登录到PHP容器,并且运行了docker-php-ext-install mysqli和docker-php-ext-install pdo_mysql,它就能工作,我只需要重新启动PHP容器。
但是,我不知道为什么,我不能从一开始就安装它?
谢谢你的帮助。
发布于 2022-08-13 14:47:12
请注意,我们只需将docker-compose.yml的第4行修改如下:
build: ./php(指示Dockerfile所在的目录)并工作。
简历:不要更改Dockerfile。通过以下方式更改docker-compose.yml:
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:
- dbhttps://stackoverflow.com/questions/73344144
复制相似问题