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_ARGSkhô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 gunicornlà
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_ARGSset 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 paragraphvà 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=3phiên bản, vì các biến được tải qua env_filekhông được chấp nhận. Chúng phải được đặt trong thiết bị đầu cuối cuộc gọi.