上下文:docker-compose启动多个容器,包括调用Flask应用程序的Gunicorn。我正在使用环境文件web/env.gunicorn
来存储我的Gunicorn启动配置。该文件包含
GUNICORN_CMD_ARGS="--bind=127.0.0.1:8001 --workers=3"
问题是GUNICORN_CMD_ARGS
管道中某处未正确处理。我在运行时遇到的错误docker logs gunicorn
是
Error: '8001 --workers=3' is not a valid port number.
问题是,在我的设置中哪里的假设是错误的,从而导致环境变量混乱?在终端中手动运行时,将接受环境变量。Docker撰写文件如下所示
version: "3"
services:
# nginx:
# image: nginx:latest
# ports:
# - "80:80"
# volumes:
# - ./nginx:/etc/nginx/conf.d
# depends_on:
# - web
web:
build: ./web
container_name: gunicorn
ports:
- "8001:8001"
environment:
- APP_CONFIG_FILE=../config/development.py
env_file:
- 'web/env.gunicorn'
networks:
- backend
command: gunicorn thymedata:app
depends_on:
- influxdb
- grafana
influxdb:
image: influxdb:latest
container_name: influxdb
ports:
- "8086:8086"
env_file:
- 'influxdb/env.influxdb'
- 'influxdb/secrets.influxdb'
networks:
- backend
volumes:
- influxdb-data:/var/lib/influxdb
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
env_file:
- 'grafana/env.grafana'
- 'grafana/secrets.grafana'
networks:
- backend
volumes:
- grafana-data:/var/lib/grafana
depends_on:
- influxdb
networks:
backend:
volumes:
influxdb-data:
grafana-data:
不是使用gunicorn,而是在阅读文档时,在env变量附近没有=登出注释。我会尝试使用空格,但是听起来好像它不能正确解析倍数参数,因此这可能是gunicorn中的错误(将参数顺序以bind参数结尾可能是一种解决方法,或者显示带有工人参数)
—
Tensibai
我尝试更改参数的顺序,但这没有帮助。我还尝试从命令行使用
—
莫里茨
GUNICORN_CMD_ARGS
set 启动Gunicorn ,它正确接受了(检查了工人数量和地址)。这就是为什么我认为问题出在Docker方面。
ERROR: build path /home/ben/devopsStackExchange/web either does not exist, is not accessible, or is not a valid URL.
。请创建一个steps to reproduce paragraph
并添加所需的文件,以便其他人至少可以允许他们重现此问题,从而为您提供帮助。
请至少添加Gunicorn Dockerfile。
—
030
我不使用Gunicorn Dockerfile。我会坚持使用该
—
莫里兹
command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3
版本,因为env_file
不接受通过加载的变量。必须已经在呼叫终端中设置了它们。