我有下一个docker-compose
文件:
nginx: build: . ports: - "80:80" - "443:443" links: - fpm fpm: image: php:fpm ports: - "9000:9000"
Dockerfile
命令列表是:
FROM nginx ADD ./index.php /usr/share/nginx/html/ # Change Nginx config here...
Nginx的服务器工作正常,我可以在http://localhost/index.html
看到默认的HTML页面,但不要执行PHP脚本。 所以当我得到http://localhost/index.php
– 浏览器下载PHP文件,而不是执行它们。
我如何使用自定义的Nginxconfiguration执行PHP脚本在我的情况?
您可以创建一个包含自定义nginx配置的非常简单的Docker镜像,并将该卷挂载到使用原始nginx镜像的容器中。
只有几个步骤可以遵循。
mkdir -p nginxcustom/conf cd nginxcustom touch Dockerfile touch conf/custom.conf
Dockerfile
这是文件内容:
FROM progrium/busybox ADD conf/ /etc/nginx/sites-enabled/ VOLUME /etc/nginx/sites-enabled/
docker build -t nginxcustomconf .
docker-compose.yml
文件 nginxcustomconf: image: nginxcustomconf command: true nginxcustom: image: nginx hostname: nginxcustom ports: - "80:80" - "443:443" volumes_from: - nginxcustomconf
示例conf/custom.conf
可能如下所示:
server { listen 82; server_name ${HOSTNAME}; set $cadvisor cadvisor.docker; location / { proxy_pass http://$cadvisor:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 150; proxy_send_timeout 100; proxy_read_timeout 100; proxy_buffers 16 64k; proxy_busy_buffers_size 64k; client_max_body_size 256k; client_body_buffer_size 128k; } }