首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在带有build-arg标志的Docker构建中,无法正确传递值

是因为build-arg标志用于在构建过程中传递参数值,但可能由于以下原因导致无法正确传递值:

  1. 参数名称错误:请确保在Dockerfile中使用的参数名称与build-arg标志中指定的参数名称一致。
  2. 参数值格式错误:请确保传递的参数值符合Dockerfile中所需的格式要求,例如字符串、整数等。
  3. 构建命令错误:请确保正确使用build-arg标志,并将其放置在正确的位置。一般来说,build-arg标志应该位于docker build命令的参数列表之前。
  4. Docker版本不兼容:某些较旧的Docker版本可能不支持build-arg标志。请确保您正在使用兼容的Docker版本,并在需要时升级到最新版本。

对于解决这个问题,您可以按照以下步骤进行排查和修复:

  1. 检查参数名称:确认Dockerfile中使用的参数名称与build-arg标志中指定的参数名称一致。
  2. 检查参数值格式:确保传递的参数值符合Dockerfile中所需的格式要求。
  3. 检查构建命令:确认正确使用build-arg标志,并将其放置在正确的位置。
  4. 检查Docker版本:确保您正在使用兼容的Docker版本,并在需要时升级到最新版本。

如果问题仍然存在,您可以尝试以下解决方案:

  1. 使用环境变量替代build-arg:在Dockerfile中,您可以使用ENV指令定义环境变量,并在构建过程中传递参数值。例如,可以在Dockerfile中添加以下指令:ENV ARG_NAME=default_value。然后,在构建过程中,使用--build-arg ARG_NAME=new_value来传递参数值。
  2. 检查Dockerfile语法错误:请确保Dockerfile中没有其他语法错误,这可能导致参数无法正确传递。

总结起来,无法正确传递值可能是由于参数名称错误、参数值格式错误、构建命令错误或Docker版本不兼容所致。您可以按照上述步骤进行排查和修复,并根据具体情况选择适当的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你不知道 Dockerfile 增强新语法

Dockerfile 是使用 Docker 相关开发人员基本工具,用来充当构建 Docker 镜像模板,在这个文件中包含用户可以命令行上调用来构建镜像所有命令。...只要您在 Dockerfile 顶部定义正确 #syntax 指令,本文中描述所有示例都适用于任何支持 BuildKit Docker 版本。...,则将设置为 word 到目前为止,这些特殊形式 Dockerfile 中并没有多大用处,因为 ARG 指令默认可以直接设置: FROM alpine ARG foo="default value...以前,使用单个命令无法实现这种复制。您可能需要单个文件多个副本,或者使用 RUN --mount 指令一些解决方法。...新 --parents 标志不仅适用于构建上下文中 COPY 指令,当使用 COPY --from 多阶段之间复制文件时,还可以多阶段构建中使用它们。

20620

Traefik Proxy 2.5 中使用开发私有插件(Traefik 官方博客)

使用 Docker 开发环境中测试您插件之后(并且可能在为其创建持续集成构建之后),您可以将此镜像推送到容器 registry,并在生产 Docker 服务器和/或 Kubernetes 集群中引用此镜像...: docker build -f Dockerfile.public \ --tag ${DOCKER_IMAGE} \ --build-arg PLUGIN_MODULE \ --build-arg...从私有 git 存储库构建镜像 从私有 git 存储库构建镜像更具挑战性,因为您需要将 SSH 凭据传递Docker 构建过程,以便按照 Dockerfile 中脚本从私有 git 存储库进行克隆...注意:由于 docker-compose 中存在一个未解决问题,您目前无法 docker-compose 中使用 --ssh 参数(并且与 ssh-agent 连接将失败),因此如果您想使用此修改后...docker 主机正确 IP 地址,现在您可以 Traefik 代理路由中使用您想要任何子域。

1K10
  • 走进向量计算:制作 OpenBLAS Docker 预构建产物镜像

    即使Docker Buildx 只能模拟 CPU 架构来进行 Multi-ARCH 构建,但是却无法模拟 CPU 类型,无法满足不同指令集硬件产物构建。...,首先根据用户传递构建参数,来确定要使用基础 Linux 环境,和要构建 OpenBLAS 产物版本。...基于 AMD Zen 架构 CPU 容器预构建 和 Intel x86 小节中最大不同是, AMD Zen 架构 CPU 容器构建中,由于比较老版本 OpenBLAS 该架构上兼容性存在问题...准备好 Dockerfile 之后,我们使用下面的命令进行 ARMv8 环境下镜像构建: docker build \ --build-arg=LTS=22.04 \ --build-arg...毕竟使用这类带有“魔法”软件完成一些好玩事情之外,让这些“魔法”能够生效更快、能量更强,也是一件十分有趣事情。

    58320

    走进向量计算:制作 OpenBLAS Docker 预构建产物镜像

    即使Docker Buildx 只能模拟 CPU 架构来进行 Multi-ARCH 构建,但是却无法模拟 CPU 类型,无法满足不同指令集硬件产物构建。...,首先根据用户传递构建参数,来确定要使用基础 Linux 环境,和要构建 OpenBLAS 产物版本。...基于 AMD Zen 架构 CPU 容器预构建 和 Intel x86 小节中最大不同是, AMD Zen 架构 CPU 容器构建中,由于比较老版本 OpenBLAS 该架构上兼容性存在问题...准备好 Dockerfile 之后,我们使用下面的命令进行 ARMv8 环境下镜像构建: docker build \ --build-arg=LTS=22.04 \ --build-arg...毕竟使用这类带有“魔法”软件完成一些好玩事情之外,让这些“魔法”能够生效更快、能量更强,也是一件十分有趣事情。

    58510

    「Spring」Boot Docker 认证指南(上)

    以下列表显示了脚本文件中正确命令:run.sh#!...要在 docker建中一步完成此操作,我们需要先解压缩 JAR。...这在某些环境中可能非常有用——例如,您需要与不了解 Java 的人共享您代码。实验功能Docker 18.06 带有一些“实验性”特性,包括缓存构建依赖项方法。...然后你可以添加一个“神奇”第一行到你Dockerfile:Dockerfile# syntax=docker/dockerfile:experimental复制然后该RUN指令接受一个新标志:--mount...检查您拥有的版本文档(前面显示示例对于docker18.0.6 是正确)。安全方面就像在经典 VM 部署中一样,进程不应以 root 权限运行。相反,映像应包含运行应用程序非 root 用户。

    1.4K20

    万字长文带你看全网最详细Dockerfile教程

    RUN指令执行命令会在新镜像层中运行,并且在后续构建中,只有该层之前内容发生变化时才会重新运行,利用了Docker缓存机制,提高了构建速度。...构建参数允许构建镜像时传递变量值,这些变量可以Dockerfile中使用,并且构建过程中可以通过--build-arg选项进行覆盖。...构建镜像时,可以通过--build-arg选项来指定构建参数,例如: $ docker build --build-arg MY_ENV=development -t my_image ....上述命令中,我们通过--build-arg选项将构建参数MY_ENV覆盖为development,构建参数使用使得构建镜像时可以根据需要进行参数化配置,使镜像更加灵活和可配置。.../app"] 构建镜像时,可以通过--build-arg选项来指定构建参数docker build --build-arg APP_VERSION=2.0 -t my_app .

    8.1K77

    【云原生 | Docker篇】深入Dockerfile(四)

    arg1 六、ARG和ENV6.1、ARGARG指令定义了一个变量,用户可以构建时使用--build-arg = 传递docker build命令会将其传递给构建器。...ARG只构建期有效,运行期无效 不建议使用构建时变量来传递诸如github密钥,用户凭据等机密。因为构建时变量值使用docker history是可见。...引号和反斜杠可用于中包含空格。...run --env 可以修改这些 容器运行时ENV可以生效 ENVimage阶段就会被解析并持久化(docker inspect image查看),参照下面示例。...要在运行容器时实际发布端口,请在docker run上使用-p标志发布并映射一个或多个端口,或使用-P标志发布所有公开端口并将其映射到高阶端口。

    1.5K72

    多个 Kubernetes 集群同GitLab Core功能集成

    本文将描述,使用带有Core许可GitLab中,它是如何将 Kubernetes 集群集成到GitLab CI/CD进程里。在下面的例子中,我们会使用这个方法来集成Kubernetes。...图4:Linux OS镜像对比 选择完基础镜像之后,还有一个 Docker 参数,用于将环境变量传递到 Dockerfile。...我们 CI/CD 流水线上使用这个命令将项目部署到 Kubernetes。 现在构建步骤基本上已经准备好,只剩下一件事:把 kubeconfig文件传递给kubectl。...这些分别是环境名、项目名和commit short SHA。本例中,这些传递到shell脚本“deploy.sh”之后,完成整个部署过程。...随后,sh脚本将使用这些基于环境名前缀文件。 ? 图7:部署模板和脚本 deploy.sh中,我们已经将从流水线传递到YAML文件,我们用这些替换模板

    1.6K20

    聊聊gitlab ci如何构建以时间为版本号docker镜像

    build --build-arg REGISTRY=$REGISTRY --build-arg BUILD_TARGET_DIR=$BUILD_TARGET_DIR --build-arg GIT_COMMIT_SHA...$K8S_DEPLOYMENT_VERSION $k8S_DEPLOYMENT=$BUILD_IMAGE -n $K8S_DEPLOYMENT_NAMESPACE可是执行后发现$BUILD_IMAGE是空...,为空原因是pipeline中定义job中变量,是不能在不同job中进行传递。...其他job下载该制品,然后引用制品里面的内容,从而达到变量传递效果不同job间变量传递1、生成制品核心样例docker_build_push: stage: 构建镜像并推送 tags: -...,是我和朋友查了一些资料,比如如何在gitlab ci生成时间戳以及如何在job之间进行变量传递,好像没查到比较完整资料,尤其官方job之间变量传递,他适配方式是比较高版本。

    14310

    Docker学习笔记---Dockerfile

    要指定多个标签,Docker建议LABEL可能情况下将标签组合到单个指令中。...该EXPOSE指令通知Docker容器在运行时监听指定网络端口。EXPOSE不使主机端口可以访问。为此,您必须使用该-p标志来发布一系列端口,或者使用该-P标志来发布所有暴露端口。...使用正确参数执行该命令: $ docker run s3cmd ls s3://mybucket VOLUME 该指令用于公开暴露容器所创建任何数据存储区域,配置存储文件或者文件夹。...ARG ARG [=] 该ARG指令定义了用户可以docker build使用该–build-arg = 标志使用命令构建时传递给构建器变量。...如果ARG指令具有默认,并且如果在构建时没有传递任何,则构建器将使用默认。 ## ONBUILD 该指令在当前Dockerfile构建完成后执行。

    70010

    Docker之详解 Dockerfile

    如果在启动镜像时指定了启动指令,则镜像预设CMD指令不执行。一般用于执行容器时提供默认。...5、EXPOSE格式:EXPOSE 指定镜像启动后暴露端口,容器启动时需要通过 -p 做端口映射 6、ENV格式:ENV 指定环境变量,使用在构建阶段中所有后续指令环境...9、ENTRYPOINT格式:ENTRYPOINT 配置容器启动后执行命令,并且不可被docker run提供参数覆盖。...docker build使用该--build-arg = 标志在构建时将该变量传递给构建器。...即使服务器进程仍在运行,这也可以检测到陷入无限循环且无法处理新连接Web服务器等情况。当容器指定了运行状况检查时,除了正常状态外,它还具有运行状况。这个状态最初是starting。

    70530

    容器Docker学习系列三~每天几个小命令

    今天继续学习我们Docker命令,简单了解命令后我们会开始实战操作执行Docker容器,应用起来我们命令。...” 因为OPTIONS 是可选 但是我们构建时候常用可选参数应该也明白下。...--build-arg :用来设置构建时变量 --no-cache : 默认false,如果设置该选项将不会使用Build Cache 构建镜像 --compress,默认false。...设置该选项,将新构建出多个层压缩为一个新层,但是将无法多个镜像之间共享新层;设置该选项,实际上是创建了新image,同时保留原有image。...--tag, -t,镜像名字及tag,通常name:tag或者name格式;可以一次构建中为一个镜像设置多个tag --network,默认default。

    55020
    领券