Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Can';在env变量中找不到rancher secret_Docker_Kubernetes_Rancher - Fatal编程技术网

Docker Can';在env变量中找不到rancher secret

Docker 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

我对牧场主有点陌生。我先解释一下我的目标。我的应用程序(用js编写)包含一个密码,我们通过该密码连接到服务器。目前,每次我们想要运行应用程序时,我们都会设置一个环境变量来包含此密码,并在运行时读取此信息(通过process.env.pass)。现在我们搬到了docker,我想让它更复杂。在阅读了docker's secrets之后,我发现在创建了一个docker's secrets/之后,我需要从/run/secrets/中阅读它。我们使用rancher的方式是构建docker映像,上传到Harbor,并在Ranch UI中创建新的工作负载

首先,我尝试在环境变量中设置秘密,如下所示:

但由于某种原因,我在环境变量列表中找不到它(原因可能是什么?)。我打印所有的envs
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的背景知识。也许这对你有帮助: