Docker运行:传递原始环境变量

时间:2018-07-19 00:32:44

标签: docker

我已经将头撞在墙上几个小时,试图弄清楚这个问题。

我的node.js代码使用环境变量let { GAC } = process.env const firestore = new Firestore({ keyFilename: GAC }) 来向Google Cloud进行身份验证。

GAC

printenv是包含秘密密钥,id等的json文件的路径。

在我的本地计算机上,GAC="${HOME}/project-id.json" 显示:

GAC

很明显,文件本身位于应有的位置。

现在,我想运行一个docker容器,并向其传递$ docker run \ -e GAC=$GAC \ -v $GAC:$GAC \ -t image \ printenv 变量和json文件,以便我的代码可以正常运行。

GAC

我想将未扩展 printenv变量传递给docker。因此,容器中的printenv应该与本地计算机上的GAC="${HOME}/project-id.json"完全一样。

$GAC

但是,在运行命令之前,shell会展开printenv变量。因此,容器中的GAC="C:\Users\eric\project-id.json"看起来像这样

GAC

这是不正确的。

如何正确执行此操作?我希望我的代码检索StartupPreferencesLoader env变量,无论它是在本地计算机上还是在容器中运行。

0 个答案:

没有答案
相关问题