Docker Can';在env变量中找不到rancher secret
我对牧场主有点陌生。我先解释一下我的目标。我的应用程序(用js编写)包含一个密码,我们通过该密码连接到服务器。目前,每次我们想要运行应用程序时,我们都会设置一个环境变量来包含此密码,并在运行时读取此信息(通过process.env.pass)。现在我们搬到了docker,我想让它更复杂。在阅读了docker's secrets之后,我发现在创建了一个docker's secrets/之后,我需要从/run/secrets/中阅读它。我们使用rancher的方式是构建docker映像,上传到Harbor,并在Ranch UI中创建新的工作负载 首先,我尝试在环境变量中设置秘密,如下所示: 但由于某种原因,我在环境变量列表中找不到它(原因可能是什么?)。我打印所有的envsDocker Can';在env变量中找不到rancher secret,docker,kubernetes,rancher,Docker,Kubernetes,Rancher,我对牧场主有点陌生。我先解释一下我的目标。我的应用程序(用js编写)包含一个密码,我们通过该密码连接到服务器。目前,每次我们想要运行应用程序时,我们都会设置一个环境变量来包含此密码,并在运行时读取此信息(通过process.env.pass)。现在我们搬到了docker,我想让它更复杂。在阅读了docker's secrets之后,我发现在创建了一个docker's secrets/之后,我需要从/run/secrets/中阅读它。我们使用rancher的方式是构建docker映像,上传到Har
console.log(process.env)代码>并且它不在那里(甚至不用另一个名字)。即使在牧场主的外壳中,我也无法在env
中看到它
在那之后,我试着用那个秘密设置一个音量。现在我可以看到目录/run/secrets/pass
,但它与Docker secrets不同。在Docker中,/run/secrets/pass
是一个我应该读取并获取机密的文件,但在Rancher中,它是一个包含pass的目录。此外,由于某些原因,我无法读取该文件:
cat /run/secrets/pass/pass
cat: /run/secrets/pass/pass: Permission denied
总而言之:
为什么它没有在envs中显示秘密
设置一个秘密的最好方法是什么,这样在有Rancher和没有Rancher(仅限于docker)的情况下都可以轻松阅读?我的意思是-最低限度的代码支持。我已经添加了支持,因此它将从/run/secrets/
读取一个秘密(它尝试读取名为pass的文件)
为什么它不让我读/run/secrets/pass/pass
请注意,我试图将此问题发布在中,但没有得到答案。欢迎任何帮助,因为我已经坚持了一个多星期了
Rancher的版本是v2.3.6。你应该先学习基本的Kubernetes概念,以获得一个关于事物如何运作的心智模型。Rancher只是一个很好的管理界面。我也是Rancher的新手,但我有k8s的背景知识。也许这对你有帮助: