gpt4 book ai didi

docker - 我可以在Dockerfile中创建一个临时变量并在以后重用吗?

转载 作者:行者123 更新时间:2023-12-02 18:52:05 25 4
gpt4 key购买 nike

在我的Dockerfile中,我想暂时切换到root用户,然后再切换回原始用户。

originalUser=`RUN whoami`

USER root
RUN apk update
RUN apk add curl

# switch back to the user before root
USER $originalUser

是否可以在Dockerfile中执行类似的操作?

最佳答案

一方面,不,没有像这样的东西。唯一相似的是ARG(在命令行中传递)和ENV(是固定字符串),都不能根据命令输出动态设置它们。

另一方面,在Docker镜像的上下文中,作为Dockerfile的作者,您对镜像中的内容具有完全的绝对控制权。您无需再问诸如“如果用户使用不同的用户名该怎么办”或“如果他们要安装在其他路径中该怎么办”之类的问题:您可以为这些事情选择固定值。我会建议:

  • 如果要安装单个二进制文件或带有“常规”安装过程的文件(它具有Autoconf样式的./configure --prefix=...选项),请将其安装到系统目录
  • 如果您要以脚本语言安装不属于“普通”目录的内容,则/app是它的常见位置
  • 仅以root用户身份安装软件(甚至是您的应用程序);在Dockerfile
  • 末尾仅切换到非根 USER
  • 不要尝试镜像任何特定系统的目录布局,用户名或数字用户ID。如果您尝试在其他地方运行该图像,它们将与
  • 不匹配

    如果您要扩展其他镜像,则应该弄清楚它使用的用户名,并在派生镜像的Dockerfile末尾的 USER目录中放置固定字符串。

    关于docker - 我可以在Dockerfile中创建一个临时变量并在以后重用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718033/

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