【发布时间】:2017-07-10 00:00:43
【问题描述】:
我尝试为 Docker 容器 bash 提示设置自定义配置,以便在连接时显示 git 分支名称。
我找到了一切正常的方法,但我无法在容器构建中执行 ~/.profile 甚至 ~/.bash_profile 文件。
如果我在容器内手动执行source ~/.profile,它可以正常工作。但我不希望我的用户键入任何命令来启用自定义提示。
我尝试将RUN /bin/bash -c "source /root/.profile" 或RUN source /root/.profile 放入我的Dockerfile 中,source /root/.profile 放入我的entrypoint.sh 文件中,但没有任何成功。
我在运行docker run时看到了一些解决方案,但我使用的是docker-compose。
如果您有任何建议,谢谢大家:D!
【问题讨论】:
-
您能否为
bash命令指定-l标志?这将导致子 shellbash以与登录 shell 相同的方式进行初始化,这将导致它调用配置文件。 -
我在 docker-entrypoint.sh 中尝试过:
/bin/bash -l -c "source /root/.profile"。但没有做更多的事情!我做错了吗? -
docker run -v ~/.profile或docker run -v ~/.bash_profile有问题,因为我猜你可以做同样的 docker-compose? -
如果您使用
-l选项(或-lc的组合),那么shell 应该将配置文件作为启动的正常部分运行。详情请查看man bash。 -
@Kern 你能展示你的 Dockerfile 吗?我已经尝试过类似
COPY mybashrc /root/.bashrc的东西(带有 bash 和 ubuntu 图像),它在运行 bash 时被选中...