Docker NGINX 设置到 运行 Django 项目给出了无效的端口规范错误

Docker NGINX setup to run Django project is giving invalid port specification error

我正在尝试为我的 Django 项目设置 Docker。我相信我的机器上的一切都已设置为 运行 docker。目前,docker version 给出以下输出:

Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.2.1
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
Server version: 17.05.0-ce
Server API version: 1.29
Go version (server): go1.7.5
Git commit (server): 89658be
OS/Arch (server): linux/amd64

我已将 docker-compose.yml 文件设置如下:

version: '3'
services:
  nginx:
    restart: always
    image: nginx:latest
    container_name: NGINX
    ports:
      - "8000:8000"
    volumes:
      - ./src:/src
      - ./config/nginx:/etc/nginx/conf.d
      - /static:/static
    depends_on:
      - web
  web:
    restart: always
    build: .
    container_name: DJANGO
    command: bash -c "python manage.py makemigrations && python manage.py migrate && gunicorn loop.wsgi -b 0.0.0.0:8000 --reload"
    depends_on:
      - db
    volumes:
      - ./src:/src
      - /static:/static
    expose:
      - "8000"

  db:
    restart: always
    image: postgres:latest
    container_name: PSQL

docker-compose build 成功构建 docker 个映像并显示以下消息:

Successfully built 6b13b02488dc
Successfully tagged loopserver_web:latest
nginx uses an image, skipping

但是,当我尝试 运行 docker-compose up 时出现以下错误:

Creating NGINX ... 
Creating NGINX ... error

ERROR: for NGINX  Cannot create container for service nginx: invalid port specification: "None"

ERROR: for nginx  Cannot create container for service nginx: invalid port specification: "None"
ERROR: Encountered errors while bringing up the project.

以及 config/nginx 文件夹中的 server.conf 文件。

upstream web {  
  ip_hash;
  server web:8000;
}

# portal
server {  
  location /static/ {    
        autoindex on;    
        alias /static/; 
    }
  location / {
        proxy_pass http://web/;
    }
  listen 8000;
  server_name localhost;
}

我是第一次使用 docker,但遇到了这个错误。任何指导都会很有帮助。

web服务中,只需添加:

environment:
   - NGINX_HOST=foobar.com
   - NGINX_PORT=80

更多信息:docker nginx

我把答案留在这里,以备日后参考

根据我们的调查,您的 docker-compose 版本 (< 1.12.0) python3 似乎存在一些问题。

错误:https://github.com/docker/compose/issues/4729

他们建议升级到 Python 3.4.4+ 或 3.5.1+,它应该已修复。