玩瓶子我想要得到一个真正的设置和运行在docker。 这意味着烧瓶应该通过nginx和gunicorn服务。 我设置了一个示例代码存储库https://github.com/geoHeil/pythonServing,但到目前为止,无法让nginx正常工作。
application:5000
程序提供了瓶子application:5000
,docker应该将应用程序parsing为相应的名称。
Nginxconfiguration如下:
server { listen 8080; server_name application; charset utf-8; location / { proxy_pass http://application:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
这对我来说很好看。 到目前为止,我找不到问题。
撰写文件在这里。 命令开始是
docker-compose build docker-compose up version: '2' services: application: restart: always build: ./application command: gunicorn -w 4 --bind :5000 wsgi:application links: - db expose: - "5000" ports: - "5000:5000" nginx: restart: always build: ./nginx links: - application expose: - 8080 ports: - "8880:8080"
你的nginx配置文件位于错误的位置。
步骤来解决:
sudo docker-compose down
删除nginx图片:
sudo docker images sudo docker rmi REPOSITORY TAG IMAGE ID CREATED SIZE pythonserving_nginx latest 152698f13c7a About a minute ago 54.3 MB sudo docker rmi pythonserving_nginx
现在更改nginx Dockerfile :
FROM nginx:1.11.8-alpine MAINTAINER geoheil ADD sites-enabled.conf /etc/nginx/conf.d/sites-enabled.conf
请注意nginx配置的位置。
现在试试这个docker-compose文件(使用用户定义的网络):
version: '2' services: application: restart: always build: ./application command: gunicorn -w 4 --bind :5000 wsgi:application networks: - testnetwork expose: - "5000" ports: - "5000:5000" db: restart: always image: postgres:9.6.1-alpine networks: - testnetwork ports: - "5432:5432" environment: - POSTGRES_USER=d - POSTGRES_PASSWORD=d - POSTGRES_DB=d volumes: - ./postgres:/var/lib/postgresql nginx: restart: always build: ./nginx networks: - testnetwork expose: - 8080 ports: - "8880:8080" networks: testnetwork:
并调出容器:
sudo docker-compose up
浏览到http:// localhost:8880