Docker env变量在通过shell登录时未设置 [英] Docker env variables not set while log via shell

查看:121
本文介绍了Docker env变量在通过shell登录时未设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的设置文件中,我得到这样的env变量

In my settings file i am getting env variables like this

'NAME': os.environ['PG_DBNAME'],  # Database

我正在这样的docker文件中设置

I am setting in docker file like this

-e PG_DBNAME= "mapp"

现在


  1. 网络应用工作正常

  2. 如果我通过 docker exec ... bash 然后env变量也设置

  1. The web app work fine
  2. If i log into shell via docker exec ... bash then env variables are also set

但是,如果我通过ipaddress登录和端口号从ssh客户端然后我可以登录,但env变量没有设置

But if i log in via ipaddress and port number from ssh client then i am able to login but env variables are not set

推荐答案

issue 2569


这是预期的。 SSH会作为登录过程的一部分来清除环境。

This is expected. SSH wipes out the environment as part of the login process.

解决方法之一是将环境变量转储到 / etc / environment (例如 env | grep _>> / etc / environment ),然后再启动Supervisor。

进一步的登录进程应该是源文件,而tada!有你的环境。

One way to work around it is to dump the environment variables in /etc/environment (e.g. env | grep _ >> /etc/environment) before starting Supervisor.
Further "login processes" should source this file, and tada! There is your environment.

那个 env | grep _>>> / etc / environment 可以是关联的默认运行脚本的一部分(通过 ENTRYPOINT CMD )到您的图像。

That env | grep _ >> /etc/environment could be part of a default run script associated (through ENTRYPOINT or CMD) to your image.

这篇关于Docker env变量在通过shell登录时未设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆