هل يمكن تمرير متغيرات بيئة مخصصة إلى حاوية دوكر؟

تتطلب بعض مكتبات العميل، مثل GitHub - googleapis/google-auth-library-ruby: Google Auth Library for Ruby · GitHub إعداد بيانات الاعتماد للمصادقة كـ متغيرات بيئة. هل من الممكن تمريرها عبر ملف yml؟

لقد جربت:

  1. إضافة export VAR=VALUE إلى قسم الأوامر المخصصة في ملف yml.
  2. إضافة VARIABLE: VALUE إلى قسم env في ملف yml.

@merefield أشار إليّ إلى أن ذلك ممكن بالفعل.

في قسم الأوامر المخصصة، قم بما يلي:

# يضيف المتغير إلى ملف .bashrc
exec: echo 'export VAR=value' >> ~/.bashrc
...
# يعيد تحميل الملف
exec: source ~/.bashrc

يمكنني تأكيد أن هذا الأسلوب يعمل بالفعل. :slight_smile:

ملاحظة:
من الناحية الفنية، لا يقوم الأمر source ~/.bashrc بتحديث البيئة في بعض الأحيان. ربما يتم استدعاؤه مبكرًا جدًا.

كما جربت أيضًا:
- exec: /bin/bash -c "source ~/.bashrc"

ألا يمكنك استخدام قسم env: في تعريف الحاوية لهذا الغرض؟ يجب أن ينشئ ذلك متغير بيئة يمكن لتطبيق Rails الوصول إليه.

على سبيل المثال:

env:
  CUSTOM_ENV: "value"

وإلا، يبدو أن pups يقوم بالفعل بنقل متغيرات البيئة من المضيف أيضًا.

هذا يعطيني خطأً متعلقًا بـ Docker. سيكون ذلك بديهيًا للغاية لو عمل الأمر بهذه الطريقة. :slight_smile: أو ربما أنا مجنون. أعتقد أن هناك قاعدة تقبل المتغيرات المخصصة التي تبدأ بـ DISCOURSE_.

سأحاول أمر المتغيرات البيئية مرة أخرى عندما أصل إلى مكتبي غدًا.

لذا، كنت مخطئًا. هذا يعمل بشكل جيد. كانت المشكلة بسبب قيمة متعددة الأسطر. أزلتها وتم بناء المشروع بنجاح. لكن السؤال هو: كيف نستخدم القيم متعددة الأسطر؟

يُهاو! تمكنت من جعله يعمل. كانت المشكلة أنني كنت أستخدم مفتاحًا خاصًا RSA كمتغير بيئة. هذا ما يجب فعله لجعل ذلك يعمل.

قم بتغليف مفتاحك بين علامتي اقتباس مفردة '' وأضف شرطة مائلة للخلف إضافية \ مع كل \n تظهر في المفتاح. أي أن \n ستصبح \\n.

فقط للمعلومية، هناك طرق أسهل للقيام بذلك بدلاً من تحديث جميع \n مباشرة.

شيء مثل هذا:

key: |
  ---BEGIN SECRET KEY---
  SHH لا تقرأ هذا، إنه سري
  ---END SECRET KEY---

هل تقصد لصق الجزء الأوسط من المفتاح كما هو؟ سيكون ذلك أنظف قليلاً.

أقصد أن YAML يدعم الأسطر المتعددة بدءًا من الحرف | (مع اختلافات اختيارية)

يمكنك بعد ذلك لصق المفتاح كما هو دون أي تعديلات (باستثناء المسافات البادئة).

لقد جربت شيئًا سخيفًا؛ أضفت | وسطرًا جديدًا فعليًا بدلاً من كل \n، لكن ذلك لم ينجح.