コンテキスト:docker-composeは、Flaskアプリを呼び出すGunicornなど、いくつかのコンテナーを起動します。環境ファイル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.
問題は、私の設定のどこに私の仮定が間違っているのですか?端末で手動で実行すると、環境変数が受け入れられます。docker composeファイルは次のようになります
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を使用していませんが、ドキュメントを読んでいる場合、env変数についての注釈から=サインアウトすることはできません。私はスペースで試しますが、それは複数の引数を適切に解析しないように聞こえるので、おそらくそれはgunicornのバグかもしれません(バインド引数で終了するように引数の順序を逆にすることは回避策であるか、労働者パラメーター)
—
Tensibai
パラメータの順序を変更してみましたが、効果はありませんでした。また、コマンドラインからsetを使用してGunicornを起動しよう
—
Moritz、
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
、必要なファイルを追加して、他の人が少なくとも問題の再現を許可できるようにしてください。
少なくともGunicorn Dockerfileを追加してください。
—
030
Gunicorn Dockerfileは使用しません。を
—
モリッツ
command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3
介しenv_file
てロードされた変数は受け入れられないため、バージョンに固執します。それらは、呼び出し側端末ですでに設定されている必要があります。