我有一个基本Dockerfile
的以下内容:
FROM php:7.1-apache
RUN apt-get update && docker-php-ext-install pdo_mysql
COPY . /var/www
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)
我有一个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"
Run Code Online (Sandbox Code Playgroud)
然后我跑到docker build -t app . && docker-compose up
项目的根部.一切似乎都正确构建,但在输出时phpinfo
我没有看到mysql_pdo扩展名.
我有什么步骤吗?
Nig*_*Ren 11
我使用的docker文件是......
FROM php:7.1-apache
COPY apache2.conf /etc/apache2
RUN docker-php-ext-install mysqli pdo pdo_mysql
Run Code Online (Sandbox Code Playgroud)
注意那里的mysqli和pdo也允许PDO/mysql位.
事实证明,我需要删除旧图像并重新构建它们。
因为我下载了图像,然后对其进行了编辑。所以我需要删除旧图像并重建它以应用更改。
docker rm 只删除容器。确保之前也删除了图像。
还要检查像这样的Dockerfile是否可能更健壮/完整:
# 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 Code Online (Sandbox Code Playgroud)
启用 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
Run Code Online (Sandbox Code Playgroud)
有关如何创建访问此页面的更多信息
归档时间: |
|
查看次数: |
8971 次 |
最近记录: |