Contexte: docker-compose pour démarrer plusieurs conteneurs, y compris Gunicorn qui appelle une application Flask. J'utilise un fichier d'environnement web/env.gunicorn
pour stocker ma configuration de démarrage Gunicorn. Ce fichier contient
GUNICORN_CMD_ARGS="--bind=127.0.0.1:8001 --workers=3"
Le problème est qu'il GUNICORN_CMD_ARGS
n'est pas traité correctement quelque part dans le pipeline. L'erreur que j'obtiens lors de l'exécution docker logs gunicorn
est
Error: '8001 --workers=3' is not a valid port number.
La question est, où dans ma configuration mes hypothèses sont-elles erronées, provoquant ainsi la modification de la variable d'environnement? La variable d'environnement est acceptée lorsqu'elle est exécutée manuellement dans un terminal. Le fichier de composition du docker se présente comme suit
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, et il l'a accepté correctement (nombre de travailleurs et adresse vérifiés). C'est pourquoi je suppose que le problème est du côté de Docker.
ERROR: build path /home/ben/devopsStackExchange/web either does not exist, is not accessible, or is not a valid URL.
. Veuillez créer un steps to reproduce paragraph
fichier et ajouter les fichiers requis afin que d'autres personnes puissent vous aider en leur permettant au moins de reproduire le problème.
command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3
version, car les variables chargées via env_file
ne sont pas acceptées. Ils doivent déjà être définis dans le terminal appelant.