gpt4 book ai didi

unix - Docker 不会以用户身份运行命令

转载 作者:行者123 更新时间:2023-12-01 13:11:23 24 4
gpt4 key购买 nike

我是新来的 Docker我在写我的 Dockerfile 时遇到问题.问题是我创建了一个名为 jonas523 的用户我想执行一个shell命令。所以我把它放在这个 Dockerfile当我进入我的新容器时,我发现我创建的新用户没有使用该命令。

我想我没看懂 USER说明由 Docker 提供:

USER jonas523

RUN \
echo "JAVA_HOME=/usr/java/jdk1.7.0_45/bin" >> /home/jonas523/.bash_profile \
&& echo "ANT_HOME=/opt/apache-ant-1.8.2/bin" >> /home/jonas523/.bash_profile \
&& echo "export JAVA_HOME" >> /home/jonas523/.bash_profile \
&& echo "export ANT_HOME" >> /home/jonas523/.bash_profile \
&& echo "PATH=$PATH:$HOME/bin:$JAVA_HOME:$ANT_HOME" >> /home/jonas523/.bash_profile \
&& echo "export PATH" >> /home/jonas523/.bash_profile

RUN source ~/.bash_profile

谁能告诉我如何使用 USER操作说明。 RUN有什么区别和 CMD指示?

谢谢。

最佳答案

来自 docs :

The USER instruction sets the user name or UID to use when running the image and for any following RUN directives.



但是,它不会创建用户。您需要已经这样做了(例如,使用较早的 RUN 指令。)

What is the difference between the "RUN" and "CMD" instructions ?


RUN用于逐步“分层”docker 镜像以安装必要的依赖项(例如 RUN apt-get install .... )。您可以拥有多个 RUN Dockerfile 中的指令,它们都会在您构建镜像时执行(为简单起见,忽略构建缓存)。
CMD指令不会在 docker build ... 期间执行,而是指定您希望容器在 docker run ... 执行的命令你只能有 1 CMD Dockerfile 中的指令。

关于unix - Docker 不会以用户身份运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26504591/

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