如何在php docker映像中启用pdo_mysql
我有一个基本的如何在php docker映像中启用pdo_mysql,php,mysql,docker,Php,Mysql,Docker,我有一个基本的Dockerfile,其中包含以下内容: FROM php:7.1-apache RUN apt-get update && docker-php-ext-install pdo_mysql COPY . /var/www EXPOSE 80 我有一个docker-compose.yml文件 version: "3" services: app: build: . ports: - "80:80" volumes:
Dockerfile
,其中包含以下内容:
FROM php:7.1-apache
RUN apt-get update && docker-php-ext-install pdo_mysql
COPY . /var/www
EXPOSE 80
我有一个docker-compose.yml文件
version: "3"
services:
app:
build: .
ports:
- "80:80"
volumes:
- .:/var/www
depends_on:
- mysql
mysql:
image: mysql:8
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: "app"
MYSQL_USER: "app"
MYSQL_PASSWORD: "app"
MYSQL_ROOT_PASSWORD: "test"
然后我运行了docker build-t应用程序docker在项目的根目录下编写
。一切似乎都构建正确,但在输出phpinfo
时,我看不到mysql_pdo扩展
我是否缺少任何步骤?我使用的docker文件是
FROM php:7.1-apache
COPY apache2.conf /etc/apache2
RUN docker-php-ext-install mysqli pdo pdo_mysql
请注意其中的mysqli和pdo,以允许pdo/mysql位。有一个:
事实证明,我需要删除旧图像并再次重建它们
因为我下载了图像,然后编辑了它。因此,我需要删除旧图像并重建它,以便应用更改
docker rm仅移除容器。请确保在删除之前也删除了图像
还应检查a是否更可靠/完整:
# PHP extensions
RUN \
docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \
&& docker-php-ext-configure mysqli --with-mysqli=mysqlnd \
&& docker-php-ext-install pdo_mysql \
...
我正在使用这个,对我来说效果很好
RUN apt-get update \
&& apt-get install -y git zlib1g-dev \
&& docker-php-ext-install pdo pdo_mysql zip
如果它对你的工作不起作用。请附上docker build output以供审阅。以启用PHP PDO和mysqli扩展以连接MySQL 加载项Dockerfile:
RUN docker-php-ext-install pdo pdo_mysql
# for mysqli if you want
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
更多关于如何创建该模块的信息请访问此我仍然会遇到与额外模块相同的问题included@Tom你是否已经移除了容器并从头开始,这只是在容器第一次启动时建立的。是的,我想是的。我停止了活动容器,然后运行
docker rm$(docker ps-a-q)
Sorry-配置基于它从基本映像构建的映像。因此,请使用docker images
查找php的图像(我创建的'docker_php'),然后使用docker rmi IMAGEID
(将其替换为列表中的图像)。然后重新启动docker,这将使用新选项重建映像。@NigelRen我使用docker stop$(docker ps-a-q)和&docker rm$(docker ps-a-q)以及&docker rmi-f$(docker images-q)
命令进行了尝试,但仍然存在上述问题。有趣的是,mysql
有效,pdo_-mysql
不起作用。你有没有对它进行过排序?这一个在@VonC工作,参考