Переменная среды в файле Docker для указанной команды c RUN - PullRequest
0 голосов
/ 25 февраля 2020

В моем Dockerfile у меня есть:

ENV ENVIRONMENT=$ENVIRONMENT
CMD NODE_ENV=$ENVIRONMENT npm run serve

Однако мне нужно выполнить другую команду ДО подачи и убедиться, что NODE_ENV также установлен для этой команды. Я попробовал это:

ENV ENVIRONMENT=$ENVIRONMENT
RUN NODE_ENV=$ENVIRONMENT npm run upgrade
CMD NODE_ENV=$ENVIRONMENT npm run serve

Однако NODE_ENV, похоже, не установлен для RUN.

Чего мне не хватает?

(Примечание: отредактированный тег удален)

1 Ответ

2 голосов
/ 25 февраля 2020

Переменные среды, заданные в операторе RUN, не сохраняются.

Это похоже на то, как вы открываете оболочку, устанавливаете переменную среды и снова закрываете сеанс оболочки. В следующей оболочке не будет переменной среды, которую вы установили в предыдущем сеансе оболочки.

Как это исправить? Добавьте переменную NODE_ENV в качестве ENV в ваш докер-файл

ENV ENVIRONMENT=$ENVIRONMENT \
    NODE_ENV=$ENVIRONMENT
RUN npm run upgrade
CMD npm run serve
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...