我正在尝试在nodejs中的代码下面使用以下代码
if (process.env.NODE_ENV !== 'production')
我试图从如下所示的docker文件中设置NODE_ENV变量。
FROM collinestes/docker-node-oracle:10-slim
ENV NODE_ENV=production
EXPOSE 8085
CMD ["npm","start"]
如果我运行我的docker映像,它将无法启动并引发错误。如果我删除NODE_ENV,一切运行正常。是从dockerfile设置NODE_ENV的正确方法吗?
答案 0 :(得分:0)
删除等号
ENV NODE_ENV production
答案 1 :(得分:0)
您的Dockerfile应该可以工作,您确定应用程序内没有其他任何东西,也许package.json可以覆盖它?
我已经对其进行了测试,并且可以正常工作
$ echo $NODE_ENV
production
我还建议在运行容器时设置NODE_ENV
变量,因为它很容易修改,我知道您可以根据需要重写它,但是在运行时进行设置将使您较少图层的图像。您可以使用下面的命令
-e可用于传递环境变量,如果您有多个变量,则可以多次传递
docker run -e NODE_ENV=production $IMAGENAME