我试图让2个docker集装箱启动,并与轨道应用程序链接在一起。 这个应用程序依赖于这些环境variables:
POSTGRES_PORT_5432_TCP_ADDR POSTGRES_PORT_5432_TCP_PORT
当我以root身份执行env时,我得到:
POSTGRES_PORT_5432_TCP_PORT=5432 POSTGRES_PORT_5432_TCP_ADDR=172.17.0.2
当我在根下运行它,我没有得到任何问题,它的工作原理。 但是应用程序以应用程序用户身份运行 当我做应用程序env时:
root@f80f94948393:/home/app# sudo -u app env
我没有看到这些变数。 我search了一下,并已经改变了这些文件:
在/ etc /环境
POSTGRES_PORT_5432_TCP_ADDR="172.17.0.2" POSTGRES_PORT_5432_TCP_PORT="5432"
/home/app/.profile
POSTGRES_PORT_5432_TCP_PORT="5432";export POSTGRES_PORT_5432_TCP_PORT POSTGRES_PORT_5432_TCP_ADDR="172.17.0.2";export POSTGRES_PORT_5432_TCP_ADDR
/home/app/.bashrc
POSTGRES_PORT_5432_TCP_PORT="5432";export POSTGRES_PORT_5432_TCP_PORT POSTGRES_PORT_5432_TCP_ADDR="172.17.0.2";export POSTGRES_PORT_5432_TCP_ADDR
但似乎没有任何帮助。 应用程序用户不显示variables。
我在这里错过了什么?
我不知道如何以非root的方式运行程序,当你使用sudo的时候,你可以使用-E(参见:man sudo)来保存env。
否则,如果您使用bash,则可以将这些variables添加到系统范围的.bashrc(/etc/bash.bashrc)中。