@kovalr

Как передать переменную окружения в Docker контейнер?

Здравствуйте,

вот например есть у меня Dockerfile

FROM ubuntu:14.04
ARG SOME_PASSWORD
RUN echo $SOME_PASSWORD >> file.password
ADD docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x  /docker-entrypoint.sh

ENTRYPOINT /docker-entrypoint.sh


Создаем образ
docker build -t test_image .

Потом мне нужно создать контейнер таким образом чтобы в файле file.password передать пароль через переменную окружения

docker run  -e SOME_PASSWORD='password12345' --restart=always -it test_image


Как это сделать?
  • Вопрос задан
  • 4039 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега Linux
Любые ответы на любые вопросы
Вот в вашем файле /docker-entrypoint.sh эта переменная будет выставлена. Остается только сунуть ее в нужный файл
cat > /password << EOL
password=$SOME_PASSWORD
EOL
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Так просто считайте переменную из файла и передавайте через стандартный -e

Ложим пароль в файл просто значением
echo "mysecretpassword" > file.password
...
MYVAR=$(cat file.password)
docker run  -e SOME_PASSWORD="$MYVAR" --restart=always -it test_image


или ложим пароль в шелл скрипт и вызываем его через source (aka .)
echo "MYVAR=mysecretpasswowrd">file.password
...
. file.password
docker run  -e SOME_PASSWORD="$MYVAR" --restart=always -it test_image
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы