Contexte: docker-compose pour démarrer plusieurs conteneurs, y compris Gunicorn qui appelle une application Flask. J'utilise un fichier d'environnement web/env.gunicornpour 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_ARGSn'est pas traité correctement quelque part dans le pipeline. L'erreur que j'obtiens lors de l'exécution docker logs gunicornest
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_ARGSset, 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 paragraphfichier 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=3version, car les variables chargées via env_filene sont pas acceptées. Ils doivent déjà être définis dans le terminal appelant.