Docker Node JS设置env

如何使用docker run设置节点ENV process.env.mysql-host

我可以以这种方式做吗? docker run --mysql-host:127.0.0.1 -p 80:80 -d myApp

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

节点的process.env是一个包含用户环境的对象。 Docker的CLI允许你使用-e或–env选项设置容器的环境variables。

你可以跑

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

将mysql_host传递到容器中。

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

 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容器,并且可以在myApp容器内parsing为“mysql-host”,而不需要环境variables。