Docker Node JS设置环境

Kri*_*son 2 environment-variables node.js docker

如何设置节点ENV process.env.mysql-hostdocker run

我能以某种方式做到这一点吗? docker run --mysql-host:127.0.0.1 -p 80:80 -d myApp

我正在FROM node:onbuild用作图像。

Adr*_*uat 5

我对节点不太了解,但我认为你只需要这样做:

docker run -e mysql-host=127.0.0.1 -p 80:80 -d myApp
Run Code Online (Sandbox Code Playgroud)

请注意,这将在同一容器中查找 mysql-host,而不是在主机上,如果这是您所期望的。我认为你真正想做的是:

$ docker run -d --name db mysql
...
$ docker run -d --link db:mysql-host -p 80:80 -d myApp
Run Code Online (Sandbox Code Playgroud)

它将运行链接到 db 容器的 myApp 容器,并可在 myApp 容器内解析为“mysql-host”,无需环境变量。


小智 5

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

你可以跑

docker run --env mysql_host=127.0.0.1 -p 80:80 -d myApp
Run Code Online (Sandbox Code Playgroud)

将mysql_host传递到容器中。