gpt4 book ai didi

bash - AWS上的Docker-环境变量未从主机继承到容器

转载 作者:行者123 更新时间:2023-12-02 20:05:46 25 4
gpt4 key购买 nike

我有一个脚本(托管在GitHub上),可以执行以下操作:

  • 在AWS上创建EC2实例
  • 将本地IP(专用IP地址)保存为环境变量$LOCALIP
  • 安装Docker(官方仓库)
  • 更新基本实例(Ubuntu 16.04 LTS)
  • 拉出我的自定义图像
  • 运行带有-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时,我还是一片空白...

    enter image description here

    最佳答案

    问题是由于您的Shell脚本的这一行:

    echo "export LOCALIP=$(hostname -i)" >> /etc/bash.bashrc

    执行该命令后, export指令尚未生效。下次登录后生效。

    要使 LOCALIP环境变量立即生效,请在 echo "export ...命令后添加以下行:
    source /etc/bash.bashrc

    关于bash - AWS上的Docker-环境变量未从主机继承到容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49613454/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com