我有一个脚本(托管在GitHub上),可以执行以下操作:
$LOCALIP
-e LOCALIP
的图像,尝试将主机环境变量传递给容器(我也尝试过-e LOCALIP=$LOCALIP
但是,当我将
docker exec
插入该实例上的容器并运行echo $LOCALIP
时,它什么也没有显示。运行env
向我显示LOCALIP
存在,但没有任何不利之处如果我销毁了容器并使用原始脚本中的完全相同的行(带有
-e LOCALIP=$LOCALIP
)进行了重新制作,则它可以正常工作-我需要使该过程自动化,但是将非常感谢您的帮助。本质上
sudo docker run -dit -e LOCALIP -p 1099:1099 -p 50000:50000 screamingjoypad/armada-server /bin/bash
不共享主机LOCALIP
变量。更新
从下面尝试建议,我在脚本中添加了以下行
source /etc/bash.bashrc
,但这仍然行不通。尝试使用容器中的echo $LOCALIP
时,我还是一片空白...最佳答案
问题是由于您的Shell脚本的这一行:
echo "export LOCALIP=$(hostname -i)" >> /etc/bash.bashrc
执行该命令后,
export
指令尚未生效。下次登录后生效。要使
LOCALIP
环境变量立即生效,请在echo "export ...
命令后添加以下行:source /etc/bash.bashrc