Docker Node JS 设置环境变量

3
如何使用docker run设置节点ENV process.env.mysql-host
我可以这样做吗?docker run --mysql-host:127.0.0.1 -p 80:80 -d myApp 我正在使用FROM node:onbuild作为镜像。
3个回答

5

Node的process.env是一个包含用户环境的对象。Docker的CLI允许您使用-e或--env选项为容器设置环境变量。

您可以运行

docker run --env mysql_host=127.0.0.1 -p 80:80 -d myApp

将 mysql_host 传递到容器中。

5

我对node并不了解,但是我认为你只需要做:

docker run -e mysql-host=127.0.0.1 -p 80:80 -d myApp

请注意,此操作将在同一容器中寻找 mysql-host,而不是在主机上查找,如果这是您期望的结果。我认为您真正想做的是:
$ docker run -d --name db mysql
...
$ docker run -d --link db:mysql-host -p 80:80 -d myApp

这将运行myApp容器,并将其链接到db容器,使其在myApp容器内可解析为"mysql-host",无需使用环境变量。


2

你还可以在dockerfile中设置节点环境变量process.env.mysql-host

FROM node:latest

WORKDIR /home/app

ADD . /home/app

ENV PORT 3000 
ENV mysql-host 127.0.0.1

EXPOSE 3000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接