我的基本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 app . && docker-compose up
。一切似乎都正确构建,但在输出phpinfo
时,我没有看到mysql_pdo扩展名。
我缺少任何步骤吗?
答案 0 :(得分:9)
我使用的docker文件是......
FROM php:7.1-apache
COPY apache2.conf /etc/apache2
RUN docker-php-ext-install mysqli pdo pdo_mysql
注意那里的mysqli和pdo也允许PDO / mysql位。
答案 1 :(得分:1)
有一个similar error in docker php issue 62:
事实证明我需要移除旧图像并重新构建它们。
原因我下载了图片,然后进行了编辑。所以我需要删除旧图像并重新构建它以应用更改。
docker rm只删除容器。确保您之前删除了图像。
同时检查Dockerfile like this one是否可能更强大/更完整:
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | Where-Object {$_.SchemaClassName -eq 'user'} | Foreach-Object {
$groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
$_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={[string]::(';',$groups)}}
}
答案 2 :(得分:1)
启用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
有关如何创建该信息的更多信息,请访问Page
答案 3 :(得分:-1)
我正在使用它,对我来说很好。
RUN apt-get update \
&& apt-get install -y git zlib1g-dev \
&& docker-php-ext-install pdo pdo_mysql zip
如果它不适合你。请附上docker build输出以供审核。