我尝试为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。
谢谢大家的建议!
我已经找到了一切使其正常工作的方法,但是我无法在容器构建时执行~/.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。
谢谢大家的建议!
bash
命令中指定-l
标志吗?这将导致子shellbash
以与登录shell相同的方式初始化,从而应该调用配置文件。 - Greg Tarsa/bin/bash -l -c“source /root/.profile”
。但是什么也没发生!我做错了吗? - Kerndocker run -v ~/.profile
或docker run -v ~/.bash_profile
有什么问题?我猜你可以在docker-compose中做同样的事情吗? - user2915097-l
选项(或结合使用-lc
),那么shell应该将profiles作为启动的正常部分运行。有关详细信息,请查看man bash
。 - Greg TarsaCOPY mybashrc /root/.bashrc
(使用bash和ubuntu镜像),当运行bash时它会被捕获... - Salem