运行Django项目的Docker NGINX安装程序给出了无效的端口规范错误
我正在为我的django项目设置Docker。我相信一切都准备好了在我的机器上运行docker。目前,运行Django项目的Docker NGINX安装程序给出了无效的端口规范错误,django,nginx,docker,docker-compose,docker-machine,Django,Nginx,Docker,Docker Compose,Docker Machine,我正在为我的django项目设置Docker。我相信一切都准备好了在我的机器上运行docker。目前,docker版本提供以下输出: 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
docker版本
提供以下输出:
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 compose版本(<1.12.0)中使用python3似乎存在一些问题
错误:
他们建议升级到Python 3.4.4+或3.5.1+,应该是固定的。你在
/config/nginx
中有什么?我在config/nginx
文件夹中有server.conf
文件。问题可能就在那里。你能展示一下吗?他们说:升级到Python 3.4.4+或3.5.1+应该可以解决这个问题。谢谢@Robert。它与Python3.5.1+配合使用,但不起作用,因为他没有所需的模板(在文档中提到)