Kontext: Docker-Compose zum Starten mehrerer Container, einschließlich Gunicorn, das eine Flask-App aufruft. Ich verwende eine Umgebungsdatei web/env.gunicorn
zum Speichern meiner Gunicorn-Startkonfiguration. Diese Datei enthält
GUNICORN_CMD_ARGS="--bind=127.0.0.1:8001 --workers=3"
Das Problem ist, dass GUNICORN_CMD_ARGS
irgendwo in der Pipeline nicht richtig verarbeitet wird. Der Fehler, den ich beim Laufen bekomme, docker logs gunicorn
ist
Error: '8001 --workers=3' is not a valid port number.
Die Frage ist, wo in meinem Setup meine Annahmen falsch sind, wodurch die Umgebungsvariable entstellt wird. Die Umgebungsvariable wird akzeptiert, wenn sie manuell in einem Terminal ausgeführt wird. Die Docker-Erstellungsdatei sieht wie folgt aus
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
, und es wurde ordnungsgemäß akzeptiert ( Anzahl der Arbeiter und Adresse überprüft). Deshalb nehme ich an, dass das Problem auf Dockers Seite liegt.
ERROR: build path /home/ben/devopsStackExchange/web either does not exist, is not accessible, or is not a valid URL.
. Bitte erstellen Sie eine steps to reproduce paragraph
und fügen Sie die erforderlichen Dateien hinzu, damit andere Personen Ihnen helfen können, indem sie ihnen zumindest erlauben, das Problem zu reproduzieren.
command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3
Version, da die über geladenen Variablen env_file
nicht akzeptiert werden. Sie müssen bereits im anrufenden Terminal eingestellt sein.