docker-compose与nginx无法正常工作

时间:2017-01-13 08:52:39

标签: nginx docker alpine

这是我的docker-compose.yml

version: '2' 

services: 

nginx:

image: nginx:1.11.8-alpine
ports:
  - "8081:80"
volumes:
  - ./code:/usr/share/nginx/html
  - ./html:/myapp
  - ./site.conf:/etc/nginx/conf.d/site.conf
  - ./error.log:/var/log/nginx/error.log
  - ./nginx.conf:/etc/nginx/nginx.conf

这是site.conf

server {

   listen 8081;
   index index.html index.php;
   server_name localhost;
   error_log  /var/log/nginx/error.log;

   location /html {
       root /myapp;
   }
}

http://nginx-php-docker.local:8081/这是工作,在/ code文件夹

中显示文件index.html

但它不适用于http://nginx-php-docker.local:8081/html

错误日志是: 2017/01/13 08:50:27 [错误] 7#7:* 4打开()" / usr / share / nginx / html / html"失败(2:没有这样的文件或目录),客户端:172.19.0.1,服务器:localhost,请求:" GET / html HTTP / 1.1",主机:" nginx-php-docker。当地:8081"

请告诉我错在哪里。

3 个答案:

答案 0 :(得分:8)

您正在配置nginx容器以侦听site.conf中的端口8081,这没有任何意义,因为该图像公开了端口80和443.

将您的site.conf更改为:

server {
   listen 80;
   index index.html index.php;
   server_name localhost;
   error_log  /var/log/nginx/error.log;
   location / {
      root /usr/share/nginx/html;
   }

   location /html {
      alias /myapp;
   }
}

docker-compose.yml中的以下行:

volumes:  
  - ./site.conf:/etc/nginx/conf.d/default.conf

答案 1 :(得分:0)

将您的撰写文件编辑为,将HTML文件重定向到错误的目录

version: '2' 

services: 

nginx:

image: nginx:1.11.8-alpine
ports:
  - "8081:80"
volumes:
  - ./code:/var/www/html/
  - ./html:/myapp
  - ./site.conf:/etc/nginx/conf.d/site.conf
  - ./error.log:/var/log/nginx/error.log
  - ./nginx.conf:/etc/nginx/nginx.conf

答案 2 :(得分:-1)

在您的终端中运行命令:

sudo setenfonce 0

现在,重新运行docker命令。