2
我正在使用docker构建我的开发环境,这是一个非常简单的env,我所有的都是nginx和php-fpm。Docker php设置安装pdo扩展
所以以下码头工人码头我创建了一个码头工人,compose.yml:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
PHP: 图像:PHP:7-FPM 卷: - ./code:/code
那么在这里发生了什么,我调用nginx图像和pgp-fpm图像并链接它们。
我还创建了一个site.conf文件:
server {
index index.php;
server_name php-docker.local;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
因此,这里是所有的服务器上的东西。
与此设置我已经成功运行phpinfo()
。当我但是我的应用程序代码,我得到一个错误抱怨pdo pdo_mysql扩展。所以我做了更多的研究,发现我需要一个Dockerfile。
我创建了一个码头工人的文件,并和里面添加了这个命令:
FROM php:7
RUN docker-php-ext-install pdo pdo_mysql
当然,这是不行的,我的意思是哪里此安装扩展以及如何做我的PHP-FPM supoose看到这些扩展...?
你有没有看在Dockerhub的PHP库中的文档:https://开头枢纽.docker.com/_/php /?我已经用apache版本完成了,而不是fpm。使用apache版本,您可以创建一个Dockerfile并安装任何前置请求和'RUN docker-php-ext-install pdo_mysql'。我假设有一个类似的FPM方法,请参阅自述文件和相应的github回购。 – ldg
运行'docker-compose up -d'之前,你运行过'docker-compose build'吗? –