Bối cảnh: docker-compose để bắt đầu một số container, bao gồm Gunicorn gọi ứng dụng Flask. Tôi đang sử dụng tệp môi trường web/env.gunicorn
để lưu trữ cấu hình khởi động Gunicorn của mình. Tập tin này chứa
GUNICORN_CMD_ARGS="--bind=127.0.0.1:8001 --workers=3"
Vấn đề là GUNICORN_CMD_ARGS
không được xử lý chính xác ở đâu đó trong đường ống. Lỗi mà tôi gặp phải khi chạy docker logs gunicorn
là
Error: '8001 --workers=3' is not a valid port number.
Câu hỏi là, ở đâu trong thiết lập của tôi, các giả định của tôi sai, do đó làm cho biến môi trường bị sai lệch? Biến môi trường được chấp nhận khi chạy thủ công trong thiết bị đầu cuối. Các tập tin soạn thảo docker trông như sau
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_CMD_ARGS
set và nó đã chấp nhận nó một cách chính xác (# công nhân và địa chỉ được kiểm tra). Đó là lý do tại sao tôi cho rằng vấn đề nằm ở phía Docker.
ERROR: build path /home/ben/devopsStackExchange/web either does not exist, is not accessible, or is not a valid URL.
. Vui lòng tạo steps to reproduce paragraph
và thêm các tệp cần thiết để người khác có thể giúp bạn bằng cách ít nhất cho phép họ tái tạo vấn đề.
command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3
phiên bản, vì các biến được tải qua env_file
không được chấp nhận. Chúng phải được đặt trong thiết bị đầu cuối cuộc gọi.