ডকার কম্পোজ এনভায়রনমেন্ট ফাইলে পরিবেশ পরিবর্তনশীল কেন ম্যাংড হচ্ছে


10

প্রসঙ্গ: দফার-রচনাগুলি যেমন একটি ফ্লাস্ক অ্যাপ্লিকেশন কল করে এমন গ্যানিকর্ন সহ বেশ কয়েকটি ধারক শুরু করতে। আমি web/env.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সেট দিয়ে গুনিকর্ন শুরু করার চেষ্টাও করেছি এবং এটি এটি সঠিকভাবে গ্রহণ করেছে (কর্মীদের # ঠিকানা এবং পরীক্ষিত ঠিকানা)। এজন্যই আমি মনে করি সমস্যাটি ডকারের পক্ষে রয়েছে।
মরিৎজ

ERROR: build path /home/ben/devopsStackExchange/web either does not exist, is not accessible, or is not a valid URL.। দয়া করে একটি তৈরি steps to reproduce paragraphকরুন এবং প্রয়োজনীয় ফাইলগুলি যুক্ত করুন যাতে অন্য লোকেরা কমপক্ষে সমস্যাটি পুনরুত্পাদন করার অনুমতি দিয়ে আপনাকে সহায়তা করতে পারে।
030

দয়া করে কমপক্ষে গুনিকর্ন ডকফাইফিল যুক্ত করুন।
030

আমি একটি গ্যানিকর্ন ডকফেরিল ব্যবহার করি না। আমি command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3সংস্করণটিতে আটকে থাকব , যেহেতু লোড করা ভেরিয়েবলগুলি env_fileগ্রহণযোগ্য নয়। তাদের ইতিমধ্যে কলিং টার্মিনালে সেট করতে হবে।
মরটিজ

উত্তর:


2

কমান্ড অধ্যায়টি পড়ার পরে এবং এই নমুনাটি সন্ধান করার পরে , দেখে মনে হচ্ছে যে GUNICORN_CMD_ARGSকেবল আর্গুমেন্টগুলি সরাসরি সরাসরি পাস করার মাধ্যমে কাস্টমটি বাদ দেওয়া যেতে পারে:

command: gunicorn thymedata:app --bind=127.0.0.1:8001 --workers=3

যদি কেউ সত্যিই ভেরিয়েবল ব্যবহার করতে চান তবে এটি নিম্নলিখিত হিসাবে করা যেতে পারে:

command: gunicorn thymedata:app --bind=${GUNICORN_BIND_ADDRESS} --workers=${GUNICORN_WORKERS}

.env

GUNICORN_BIND_ADDRESS=127.0.0.1:8001
GUNICORN_WORKERS=3

$ UN GUNICORN_BIND_ADDRESS কেবলমাত্র টার্মিনালে ইতিমধ্যে ভেরিয়েবলগুলি মূল্যায়ন করবে, এর মাধ্যমে লোড হয় না env_file। যেহেতু আমি কোনো গোপন সেট না, এটি একটি গ্রহণযোগ্য সমাধান
মরটিজ

3

আমারও একই সমস্যা ছিল এবং এটি হ্যাকের মতো অনুভব না করে আমার পক্ষে কাজ করে ...

ডকার-কম্পোজ.আইএমএল :

version: '3'
services:
   web:
      build .
      environment:
      - GUNICORN_CMD_ARGS=--workers=0 --bind=0.0.0.0:8000 --timeout=10

দ্রষ্টব্য: উদ্ধৃতি ব্যতীত env GUNICORN_CMD_ARGS যুক্ত করুন

ডকফেরাইল :

FROM python:3.6-slim
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
ENV GUNICORN_CMD_ARGS="--bind=0.0.0.0:8000 --workers=3"
CMD gunicorn app:app

দ্রষ্টব্য: সিএমডি গ্যানিকর্ন অ্যাপ্লিকেশন চালান: অ্যারে বা উদ্ধৃতিগুলির মাধ্যমে বিকল্পগুলি পাস না করে অ্যাপ্লিকেশন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.