[英]docker-compose in v2 overwrites build arguments
此代碼在 v2 之前有效。 這是我能想到的最小的例子。 我正在尋找一種通過 docker-compose build 命令修復它的方法。
我知道這個問題有很多文字,所以我試圖強調重要的部分。
任何想法如何解決這個問題或解決它? 如果沒有人知道為什么會發生這種情況,我將提交錯誤報告。
編輯以解釋為什么這不是 5 年前問過的How to pass arguments to entrypoint in docker-compose.yml的重復。 這不是語法錯誤或有關運行時環境變量的問題。 這個問題是關於構建時環境變量 docker-compose v2 的錯誤替換。
文件
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 運行 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 <--------------------------------------------------------------------------------------- expected result
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 <--------------------------------------------------------------------------------------- expected result
PWD=/
Removing intermediate container 4e6dfae151f6
---> cb1f2f43bd32
Successfully built cb1f2f43bd32
Successfully tagged upgradetest:latest
使用 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 <-------------------------------------------------------------------------------------- expected 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 <-------------------------------------------------------------------------------------- expected result
PWD=/
---> a3b37c031916
Successfully built a3b37c031916
Successfully tagged upgrade_test:0.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.