PHP-FPM
我认为您缺少 php-fpm.conf 配置文件,我的文件看起来像是标准文件,但有一些更改:
error_log = /proc/self/fd/2
允许您使用docker logs
daemonize = no
include=/etc/php/7.1/fpm/php-fpm.d/www.conf
www.conf我将其包含在
php-fpm.conf
更改标准之一:
listen = 9000
Dockerfile:
显然,我复制了php-fpm.conf和www.conf(我使用
php:7.1.14-fpm-jessie)
... install & cleanup stepsCOPY php-fpm.conf /etc/php/7.1/fpm/php-fpm.confCOPY www.conf /etc/php/7.1/fpm/php-fpm.d/www.conf
用于php-fpm的Dockerfile的结尾看起来像:
CMD ["php-fpm", "--fpm-config", "/etc/php/7.1/fpm/php-fpm.conf"]
NGINX
default我通过Dockerfile复制到其中:
server { listen 80 default_server; root /var/www/app/public; index index.html index.htm index.php; server_name _; charset utf-8; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; } location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass pn-php-fpm:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param script_FILENAME $document_root$fastcgi_script_name; } error_page 404 /index.php; location ~ /.ht { deny all; }}NGINX的
Dockerfile:
FROM nginxRUN echo "daemon off;" >> /etc/nginx/nginx.confCOPY default /etc/nginx/conf.d/default.conf# forward request and error logs to docker log collectorRUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.logCMD ["nginx"]
Docker组成部分
撰写时需要共享音量;我的意思是,NGINX + php-fpm必须能够读取您的 应用程序代码
volumes: - wherever/your/pre/is/on/host:/var/www/app
注意 :此答案是WIP,我将定期编辑/评论以帮助OP。



