You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose v2构建时build arguments参数值错误覆盖问题求助

这段代码在Docker Compose v2版本之前可正常运行,以下是整理的最小复现示例,希望能通过docker-compose build命令修复该问题。
我知道本问题内容较长,已对核心信息做了标注。
请问是否有可行的修复方案或绕过方法?若无人知晓该问题的成因,我将提交bug报告。
补充说明:本问题并非5年前发布的《How to pass arguments to entrypoint in docker-compose.yml》的重复问题,该问题讨论的是语法错误或运行时环境变量相关内容,本问题针对的是Docker Compose v2中构建时环境变量错误替换的异常。

Dockerfile

FROM nginx:1.15.2

ARG A
ARG B

RUN env

docker-compose.yml

version: "3.6"
services:
  nginxtest:
        image: upgrade_test:0.1
        container_name: upgrade_test
        build:
            context: .
            dockerfile: ./Dockerfile
            args:
                A: arg_a
                B: arg_b

原生Docker命令构建结果(符合预期)

若直接使用docker命令构建Dockerfile,ARGS参数运行符合预期:

$ docker build --no-cache --build-arg A=arg_a --build-arg B=arg_b -t upgradetest .
Sending build context to Docker daemon  3.072kB
Step 1/4 : FROM nginx:1.15.2
 ---> c82521676580
Step 2/4 : ARG A
 ---> Running in a0f28fe1354f
Removing intermediate container a0f28fe1354f
 ---> accca99c82d7
Step 3/4 : ARG B
 ---> Running in 797051b92fda
Removing intermediate container 797051b92fda
 ---> 172094fed9d5
Step 4/4 : RUN env
 ---> Running in 4e6dfae151f6
HOSTNAME=4e6dfae151f6
HOME=/root
A=arg_a  <--------------------------------------------------------------------------------------- 预期结果
NGINX_VERSION=1.15.2-1~stretch
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NJS_VERSION=1.15.2.0.2.2-1~stretch
B=arg_b <--------------------------------------------------------------------------------------- 预期结果
PWD=/
Removing intermediate container 4e6dfae151f6
 ---> cb1f2f43bd32
Successfully built cb1f2f43bd32
Successfully tagged upgradetest:latest

Docker Compose构建结果(不符合预期)

但使用docker-compose命令构建时结果不符合预期:

$ docker-compose build --no-cache
Sending build context to Docker daemon     297B
Step 1/4 : FROM nginx:1.15.2
 ---> c82521676580
Step 2/4 : ARG A
 ---> Running in d0b419c42db3
 ---> 9e53cb90f9a4
Step 3/4 : ARG B
 ---> Running in f645fb8df1b4
 ---> 5d4bc5267c63
Step 4/4 : RUN env
 ---> Running in 7c0813b7a822
HOSTNAME=7c0813b7a822
HOME=/root
A=arg_b <-------------------------------------------------------------------------------------- 预期为arg_a
NGINX_VERSION=1.15.2-1~stretch
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NJS_VERSION=1.15.2.0.2.2-1~stretch
B=arg_b <-------------------------------------------------------------------------------------- 符合预期
PWD=/
 ---> a3b37c031916
Successfully built a3b37c031916
Successfully tagged upgrade_test:0.1

内容的提问来源于stack exchange,提问作者Dov Rine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:36:04