บริบท: นักเทียบท่าเขียนเพื่อเริ่มภาชนะบรรจุหลายแห่งรวมถึง Gunicorn ที่เรียกใช้แอพ Flask ฉันใช้ไฟล์สภาพแวดล้อม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.
คำถามคือข้อสันนิษฐานของฉันอยู่ที่ไหนในกรณีที่การตั้งค่าของฉันไม่ถูกต้อง ยอมรับตัวแปรสภาพแวดล้อมเมื่อเรียกใช้ด้วยตนเองในเทอร์มินัล ไฟล์เขียนนักเทียบท่ามีลักษณะดังต่อไปนี้
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
ชุดและยอมรับมันอย่างถูกต้อง (จำนวนคนงานและที่อยู่ที่ตรวจสอบแล้ว) นั่นเป็นเหตุผลที่ฉันคิดว่าปัญหาอยู่ที่ด้านข้างของ 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
และเพิ่มไฟล์ที่จำเป็นเพื่อให้คนอื่นสามารถช่วยคุณได้โดยอย่างน้อยก็อนุญาตให้พวกเขาทำซ้ำปัญหาได้
command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3
เวอร์ชันเนื่องจากตัวแปรที่โหลดผ่านenv_file
ไม่เป็นที่ยอมรับ พวกเขาจะต้องมีการตั้งค่าในสถานีโทร