2015-09-24 1 views
1

Это может быть общая проблема докера, но мой вариантом использования является докер-Compose:Передайте локальные переменные окружения докера

Мне нужно передать имя хоста моей машины в качестве переменной среды в контейнер, который будет создан через докер -compose. Этот конкретный контейнер использует файл Docker и использует в нем флаг «cmd». Команда в «cmd» использует эту переменную среды. Кто-то может помочь?

+1

ответил : https://github.com/docker/compose/issues/2091 – dnephin

+0

спасибо @dnephin, он отлично работает :) – 208rishabh

ответ

0

Если вы можете переписать Dockerfile для того, чтобы включить имя хоста в качестве ENV instruction,, как указано в issue 1136, который будет работать:

FROM centos:latest 
ENV BLABLA hello 
RUN echo $BLABLA 
# outputs: "hello" 

Если это чисто среда выполнения значение переменной, она должна быть включена в докер 1,9 с issue 14634: Builder - Build-time argument passing (e.g., HTTP_PROXY):

В то же время, OP 208rishabh упоминает issue 2091 для docker compose, ответил dnephin:

среды или env_file should both work:

Вы можете оставить значение пустым, и он будет принимать значение от текущей среды:

environment: 
    HOST_HOSTNAME: 

Это позволяет:

HOST_HOSTNAME=$(hostname) docker-compose up 
+0

Первый решение потребует от меня жесткого кода «значение» переменной среды. Я хочу что-то динамичное. времени выполнения окр значение переменного кажется круто :) В настоящее время, решение здесь: https://github.com/docker/compose/issues/2091 – 208rishabh

+0

@ 208rishabh Отлично: Я включил ваше разрешение вопроса GitHub в ответ для большей наглядности. – VonC