Экспорт переменной среды в файл Entrypoint не работает? - PullRequest
2 голосов
/ 05 марта 2020

У меня возникли проблемы с экспортом переменной среды в docker файл точки входа.

Это мое docker содержимое файла:

   FROM ubuntu:16.04
   ADD entrypoint.sh .
   RUN chmod 777 entrypoint.sh
   ENTRYPOINT ["./entrypoint.sh"]
   CMD ["/bin/bash"]

В файле Entrypoint я пытаюсь запустить команду "export TOKEN = $ client_token". Затем я создаю контейнер с этим файлом изображения и запускаю команду «docker exe c -it / bin / bash», и в контейнер продолжаю выполнять команду «set», чтобы показать все переменные среды. Поэтому я не могу найти переменную $ TOKEN, которую я экспортировал ранее.

Как экспортировать переменную среды в файл точки входа?

1 Ответ

2 голосов
/ 06 марта 2020

Вы должны внедрить переменную среды вашего хоста (client_token) в контейнер docker, используя '-e' при запуске:

docker run -it --rm -e client_token=<whatever> <your image>

Это работает, например, с точкой входа такого типа:

#!/bin/bash
export TOKEN=$client_token
echo "The TOKEN is: ${TOKEN}"
# do stuff ...

Если вы не знаете значение токена при запуске контейнера, вы должны выполнить инъекцию во время вложения (docker exe c) и выполнить необходимые операции внутри, но, вероятно, это не подходит для вас, если запущенный контейнер уже нуждался в этой информации.

docker exec -it -e TOKEN=<whatever> <your container>

BRs

...