Docker env变量在通过shell登录时未设置 [英] Docker env variables not set while log via 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"
现在
- 网络应用工作正常
- 如果我通过
docker exec ... bash
然后env变量也设置
- The web app work fine
- 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屋!