gpt4 book ai didi

docker - ARG定义在Dockerfile中如何工作?

转载 作者:行者123 更新时间:2023-12-02 21:04:56 25 4
gpt4 key购买 nike

# Set to 497 by default, which is the groupID used by AWS Linux ECS instance
ARG DOCKER_GID=497

# Set default value of 497 if DOCKER_GID set to blank string by Docker compose
RUN groupadd -g ${DOCKER_GID} docker

关于第二行( RUN指令),如果未在命令行上传递组ID值,则期望选择默认的组ID 497。

Documentation没有帮助回答这个问题
RUN groupadd -g ${DOCKER_GID:-497} docker解决了此问题。

为什么 RUN groupadd -g ${DOCKER_GID} docker给出以下错误?尽管在Dockerfile中为 ARG DOCKER_GID=497 ...
Service 'jenkins' failed to build: The command '/bin/sh -c groupadd -g ${DOCKER_GID} docker' returned a non-zero code: 3

最佳答案

是的,您可以只使用RUN groupadd -g ${DOCKER_GID} docker,这将创建一个具有GID docker的组DOCKER_GID

您可以通过仅构建以下dockerfile来非常快速地进行检查。

FROM ubuntu
ARG DOCKER_GID=497
RUN groupadd -g ${DOCKER_GID} docker

构建两个不同的镜像,一个发布 --build-arg DOCKER_GID=12345,另一个不生成arg。运行它们,并检查 cat /etc/group | grep docker以确保GID是您所期望的GID。

实际上,仅使用 ${DOCKER_GID:-497}进行了测试,效果也很好。那么,实际上您的问题是什么?

关于docker - ARG定义在Dockerfile中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58652060/

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