Compose: لم يتم تعيين متغيرات البيئة عند استخدام عامل البناء من خلال ssh

تم إنشاؤها على ٢٩ ديسمبر ٢٠١٦  ·  4تعليقات  ·  مصدر: docker/compose

أهلا،

نظرًا لتكوين عامل الإرساء 1.9.0 و docker-compose.yml التالي:

version: '2'
services:
kafka:
image: wurstmeister/kafka
environment:
KAFKA_ADVERTISED_HOST_NAME: ${HOSTNAME}

عندما أقوم بتنفيذ الأمر التالي:

ssh [email protected] "docker-compose up -d

ثم لم يتم التعرف على متغير بيئة اسم المضيف. تلقيت الرسالة التالية:

لم يتم تعيين متغير HOSTNAME. التقصير في سلسلة فارغة.

إذا قمت بتنفيذ نفس الأمر على "شريط" المضيف مع المستخدم "foo" فلن أحصل على الخطأ. نفس الشيء إذا اتصلت أولاً بـ ssh ، ثم قمت بتنفيذ الأمر.
هذه قضية رئيسية بالنسبة لنا. يحدث سير العمل هذا في CI الخاص بنا.

الحل الوحيد الذي وجدناه هو كتابة النص التالي:

#!/bin/bash
export HOSTNAME=${HOSTNAME}
docker-compose up -d

وننفذها من خلال ssh .. وهو ليس وسيم ..

kinquestion

التعليق الأكثر فائدة

لقد وجدت هذا الذي يبدو ذا صلة. bash بتصدير $HOSTNAME افتراضيًا ، وهو ما يفسر سبب عدم رؤيته من قبل docker-compose .

تمكنت من إعادة الإنتاج محليًا في بيئة Ubuntu 16.04 الخاصة بي ، لذا يمكنني التأكد من أن هذا لا علاقة له بـ SSH أيضًا.

ال 4 كومينتر

حسنًا ، ألا يحدث ذلك لأنه عند تنفيذ الأمر من خلال ssh مباشرة ، فأنت لا تفتح غلافًا فعليًا؟ بمعنى أن بعض متغيرات البيئة مثل $HOSTNAME لن يتم تعيينها؟

يبدو أن مشكلتك تتعلق بـ UNIX و / أو SSH - لا أرى أي شيء يمكن القيام به حيال ذلك على مستوى الإنشاء.

هذا ما كنت أفكر. لكن الحل البديل للأمر التالي يعمل .. مما يعني أن المتغير HOSTNAME تم تعيينه بشكل صحيح أثناء جلسة ssh. لذلك لا أعرف لماذا لا يتعرف التأليف عليه ... هذا غريب.

لقد وجدت هذا الذي يبدو ذا صلة. bash بتصدير $HOSTNAME افتراضيًا ، وهو ما يفسر سبب عدم رؤيته من قبل docker-compose .

تمكنت من إعادة الإنتاج محليًا في بيئة Ubuntu 16.04 الخاصة بي ، لذا يمكنني التأكد من أن هذا لا علاقة له بـ SSH أيضًا.

@ shin-made كيفية إصلاح هذا على Ubuntu ، يرجى التوضيح؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات