我尝试添加到文件PATH
和~/.profile
中的/etc/profile
,如下所示。
PATH = $PATH:/required/path
然而,它不起作用。然后我尝试添加行显示,这也不起作用。
export PATH
即使重新启动容器和主机,它也无法正常工作。
答案 0 :(得分:93)
如果您想在 Dockerfile 中添加/new/path
,请添加以下行:
ENV PATH "$PATH:/new/path"
应该有效。
答案 1 :(得分:12)
在您的Dockerfile中添加一行ENV PATH xxx
,请参阅此Dockerfile中的示例https://gist.github.com/deepak/5933685
答案 2 :(得分:8)
我在irc聊天中得到了这个问题的答案。在这里给予任何可能遇到这种情况的人的利益。许多人在更新~/.profile
时给出了错误的答案,但这不起作用。所以请使用下面的答案。
为用户更新文件~/.bashrc
或更新全局更改文件/etc/enviroment
,以适用于所有用户。
在.bashrc
导出路径:export PATH=$PATH:/new/path/bin
环境:PATH=$PATH:/new/path/bin
答案 3 :(得分:0)
投票得最好的答案建议将ENV PATH "$PATH:/new/path"
添加到 Dockerfile ,这确实应该有效。
如某些评论/答案中所述,解决方案1.不适用于某些人。
原因是在运行docker容器时PATH
可能会被.bashrc
之类的脚本覆盖,从而给人ENV PATH...
无效的印象,但从理论上讲
要解决此问题,您需要通过在Dockerfile中添加以下命令,将正确的.bashrc
附加到PATH
:
RUN echo "export PATH=/new/path:${PATH}" >> /root/.bashrc
答案 4 :(得分:0)
这是我的 docker 文件,在 Centos 上我已经提取并设置了 java 主路径,它对我有用。
Dockerfile:
FROM centos:7
RUN yum update -y yum install -y tar
COPY jdk-7u80-linux-x64.tar.gz /opt/
WORKDIR /opt
RUN tar -xvf jdk-7u80-linux-x64.tar.gz
RUN chmod -R 755 jdk1.7.0_80
RUN echo export JAVA_HOME=/opt/jdk1.7.0_80 >> /etc/profile
RUN echo export PATH='$PATH:$JAVA_HOME/bin' >> /etc/profile
ENV JAVA_HOME "/opt/jdk1.7.0_80"
ENV PATH "${JAVA_HOME}/bin:${PATH}"