为什么我不能在 RHEL UBI nginx 镜像中使用 build arg VERSION?

问题描述 投票:0回答:0

我有

Dockerfile

FROM registry.access.redhat.com/ubi8/nginx-120:1-92.1679484498

ARG VERSION
ARG MY_VERSION

RUN echo VERSION: $VERSION && \
    echo MY_VERSION: $MY_VERSION

我用

建造它
docker build -t ubi_nginx . --build-arg VERSION=1.2.3 --build-arg MY_VERSION=1.2.3

我得到输出:

Sending build context to Docker daemon  20.84MB
Step 1/4 : FROM registry.access.redhat.com/ubi8/nginx-120:1-92.1679484498
 ---> 51d4367bcb6a
Step 2/4 : ARG VERSION
 ---> Using cache
 ---> a8285e1df5d3
Step 3/4 : ARG MY_VERSION
 ---> Using cache
 ---> fca127167f84
Step 4/4 : RUN echo VERSION: $VERSION &&     echo MY_VERSION: $MY_VERSION
 ---> Running in 43a9f9ab95e2
VERSION: 0
MY_VERSION: 1.2.3
Removing intermediate container 43a9f9ab95e2
 ---> 34e6e26cf8c8
Successfully built 34e6e26cf8c8
Successfully tagged ubi_nginx:latest

为什么Docker将

MY_VERSION
设置为正确的值
1.2.3
,而
VERSION
却设置为
0
VERSION
是我们生态系统和 CI 管道中的常见 Docker 变量。这是导致这种奇怪行为的第一张图片。我想了解问题并在可能的情况下解决它。我试图分析基本图像,但
docker inspect
没有显示任何关于参数或
VERSION
的信息。这种行为怎么可能呢?我能够在不同的 Linux 系统上重现这种行为。

docker dockerfile rhel
© www.soinside.com 2019 - 2024. All rights reserved.