如何使用自定义Nginxconfiguration官方nginx的Docker镜像?

我有下一个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镜像的容器中。

只有几个步骤可以遵循。

1.创建你自定义的nginx配置图像项目

 mkdir -p nginxcustom/conf cd nginxcustom touch Dockerfile touch conf/custom.conf 

2.修改Dockerfile

这是文件内容:

 FROM progrium/busybox ADD conf/ /etc/nginx/sites-enabled/ VOLUME /etc/nginx/sites-enabled/ 

3.建立新的形象

 docker build -t nginxcustomconf . 

4.修改你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; } }