Удалите переменные ENV внутри контейнера docker через скрипт, который будет выполняться внутри того же контейнера - PullRequest
0 голосов
/ 23 апреля 2020

Я передал переменные env во время построения docker образа (в docker команда запуска с флагом --env), который требуется только во время сборки. Как удалить эти переменные env после завершения сборки docker. Я пытался сбросить эти переменные с помощью скрипта, который выполняется внутри контейнера docker, но у меня это не сработало. Пожалуйста, помогите мне !!

1 Ответ

0 голосов
/ 23 апреля 2020

Я предлагаю избегать проблемы, а не пытаться ее исправить.

  1. Если вам нужны переменные во время сборки, используйте build args .
  2. Если вы хотите / нужно использовать переменные окружения во время сборки, поместите их вместе с нужными командами в сценарий оболочки и запустите его при сборке.
  3. Директива ENV в Dockerfile предназначена для установки переменные окружения для контейнера. Не злоупотребляйте им, так что вам не придется исправлять побочные эффекты.

Если вы настаиваете на том, чтобы попытаться это исправить и сбросить переменные во время выполнения, вам нужно добавить команды unset в загрузочный скрипт вашего образа, например:

FROM alpine
ENV SECRET there is no spoon
RUN apk add --no-cache bash
RUN echo "unset SECRET" >> /root/.bashrc
ENTRYPOINT ["/bin/bash"]
...