установить переменную NODE_ENV в производстве через файл Docker - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь использовать приведенный ниже код под кодом в nodejs

if (process.env.NODE_ENV !== 'production')

Я попытался установить переменную NODE_ENV из файла Docker, как показано ниже.

FROM collinestes/docker-node-oracle:10-slim
ENV NODE_ENV=production
EXPOSE  8085
CMD ["npm","start"]

Если я запустил свой докеризображение не запускается и выдает ошибку.Если я удаляю NODE_ENV все работает нормально.Это правильный способ установки NODE_ENV из dockerfile?

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Ваш Dockerfile должен работать, вы уверены, что внутри приложения больше ничего нет, может, package.json может переопределить его?

Я проверил его, и он работает правильно

$ echo $NODE_ENV
production

Также я бы предложил установить переменную NODE_ENV во время работы контейнера, так как это было бы легче изменить, я знаю, что вы можете переопределить его в любом случае, если это необходимо, но установка его во время выполнения сделает ваш образ сменьше слоев.Вы можете использовать команду ниже

-e может использоваться для передачи переменной окружения и может быть передана несколько раз, если у вас более одной переменной

docker run -e NODE_ENV=production $IMAGENAME
0 голосов
/ 20 марта 2019

Удалить знак равенства

ENV NODE_ENV production
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...