تمرير مفتاح API للبريد الإلكتروني إلى الحاوية دون كتابته في app.yml

أهلاً! لدي تطبيق إعدادات ديسكورس app.yml مُتتبع في مستودع git (مع بقية إعدادات الخادم).
بالطبع، أود الاحتفاظ بـ DISCOURSE_SMTP_PASSWORD خارج مستودع git، لذا أريد تمريره بشكل منفصل. هل هناك طريقة مُوصى بها للقيام بذلك؟

لقد جربت:
استخدام قسم env_file: في docker-compose، مع env:، لمحاولة تمرير ملف منفصل:

env_file:
  - path: /var/discourse/containers/creds.env

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en
  ...


====== creds.env ======
DISCOURSE_SMTP_PASSWORD="..."

لكنني لم أتمكن من جعل docker يلتقط متغير البيئة.
حاولت تمريره إلى --docker-args،
sudo /var/discourse/launcher rebuild app --docker-args DISCOURSE_SMTP_PASSWORD=$DISCOURSE_SMTP_PASSWORD
لكن ذلك يتعطل فورًا:
docker: invalid reference format: repository name must be lowercase.

شكراً لكم على هذا البرنامج الرائع وآمل أن تكونوا جميعًا بأمان :)))

إعجابَين (2)

أهلاً بك مجدداً!

أعتقد أن الصيغة الصحيحة ستكون شيئاً كهذا:

./launcher rebuild app --docker-args "-e DISCOURSE_SMTP_PASSWORD=\"password\""

مع --env-file، يجب أن يعمل هذا أيضاً:

./launcher rebuild app --docker-args "--env-file=/var/discourse/containers/creds.env"
إعجابَين (2)

لقد نجح ذلك بشكل رائع!

(للتاريخ: احتجت إلى تعديل الاقتباس قليلاً أيضًا، على النحو التالي:

./launcher rebuild app --docker-args "-e DISCOURSE_SMTP_PASSWORD=$DISCOURSE_SMTP_PASSWORD"

لقد حصلت على **خطأ** - فشل المصادقة 535 بخلاف ذلك - وفي السطر الأخير من مخرجات وحدة تحكم إعادة البناء يمكنك رؤية مجموعة إضافية من علامات الاقتباس في سطر الأوامر. أعتقد أن تعريف متغير env_file ربما لا ينبغي أن يكون محاطًا بعلامات اقتباس، على عكس ما ورد في منشوري الأصلي.)

شكراً جزيلاً على المساعدة وأتمنى لك يوماً رائعاً!

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.