【问题标题】:Not Able to use ARGUMENT for ADD command in Dockerfile [duplicate]无法在 Dockerfile 中使用 ARGUMENT 来添加命令 [重复]
【发布时间】:2021-01-28 15:59:17
【问题描述】:

我有一个 Dockerfile,在运行 Dockerfile 之前我需要在其中提供构建参数。

ARG JAR_VERSION=${JAR_VERSION}
FROM openjdk:8-jre-slim
ADD App1-${JAR_VERSION}-SNAPSHOT.jar /opt/myapp/examples/App1-${JAR_VERSION}-SNAPSHOT.jar

无法弄清楚为什么 ADD 命令没有按要求工作,我尝试了多种方法,但没有运气

我在构建图像时提供构建 arg docker build -t myapp:1.0.20 --build-arg JAR_VERSION=1.0.20 .

但在日志中它在下面显示相同的错误 步骤 16/20:添加 App1-${JAR_VERSION}-SNAPSHOT.jar /opt/myapp/examples/App1-${JAR_VERSION}-SNAPSHOT.jar 20:55:12 添加失败:stat /var/lib/docker/tmp/docker-builder164635490/App1-SNAPSHOT.jar:没有这样的文件或目录

【问题讨论】:

  • 如果ARGFROM 之前,它只能用于替换FROM 图像名称中的值。在FROM 之后移动ARG

标签: java docker jar dockerfile build-automation


【解决方案1】:

ARG 正在获取作用域,所以空值,尝试在FROM 之后声明它或重新声明

FROM openjdk:8-jre-slim
ARG JAR_VERSION=${JAR_VERSION}
ADD App1-${JAR_VERSION}-SNAPSHOT.jar /opt/myapp/examples/App1-${JAR_VERSION}-SNAPSHOT.jar

ARG JAR_VERSION=${JAR_VERSION}
FROM openjdk:8-jre-slim
ARG JAR_VERSION
ADD App1-${JAR_VERSION}-SNAPSHOT.jar /opt/myapp/examples/App1-${JAR_VERSION}-SNAPSHOT.jar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-17
    • 2013-12-27
    • 1970-01-01
    • 2019-08-27
    • 2022-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多