我尝试添加到PATH
文件中~/.profile
,/etc/profile
如下所示。
PATH = $PATH:/required/path
但是,它不起作用。然后,我尝试添加行显示,但该行显示也不起作用。
export PATH
即使重新启动容器和主机,它也无法工作。
Answers:
如果要/new/path
在Dockerfile中包含a ,请添加以下行:
ENV PATH "$PATH:/new/path"
在Dockerfile中应该可以工作。
在您的Dockerfile中放一行,ENV PATH xxx
请参阅此Dockerfile中的示例https://gist.github.com/deepak/5933685
我在irc聊天中得到了这个问题的答案。此处给出的是对可能遇到此问题的任何人的利益。许多人在更新时给出了错误的答案,~/.profile
但没有用。因此,请使用以下答案。
更新文件~/.bashrc
的用户或更新文件的/etc/enviroment
全局性,这将适用于所有用户的全球变化。
在.bashrc
导出路径中:export PATH=$PATH:/new/path/bin
在环境中: PATH=$PATH:/new/path/bin
投票最好的答案建议添加ENV PATH "$PATH:/new/path"
到Dockerfile中,这确实应该起作用。
如某些评论/答案中所述,解决方案1.对某些人不起作用。
原因是PATH
可以被某些脚本覆盖,例如.bashrc
在运行docker容器时,因此给人的印象是ENV PATH...
不起作用,但理论上可以。
要解决此问题,您需要通过将以下命令添加到Dockerfile中来添加.bashrc
正确PATH
的名称:
RUN echo "export PATH=/new/path:${PATH}" >> /root/.bashrc
这是我的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}"