base1
ARG v1=World
ENV v1=$v1
RUN echo ${v1}
FROM alpine:latest as base2
RUN echo ${v1}
===
docker build --no-cache .
Sending build context to Docker daemon 2.048kB
Step 1/6 : FROM alpine:latest as base1
---> 3fd9065eaf02
Step 2/6 : ARG v1=test
---> Running in c15a693a3d6e
Removing intermediate container c15a693a3d6e
---> 54a294dc9517
Step 3/6 : ENV v1=$v1
---> Running in 7dd3be538411
Removing intermediate container 7dd3be538411
---> a30aca762bbe
Step 4/6 : RUN echo ${v1}
---> Running in b60a3079864b
test
Removing intermediate container b60a3079864b
---> 026386949f08
Step 5/6 : FROM alpine:latest as base2
---> 3fd9065eaf02
Step 6/6 : RUN echo ${v1}
---> Running in 1147977afd60
Removing intermediate container 1147977afd60
---> a78076670b4f
Каждый стейдж = новый контейнер и свои переменные
Я вижу только один вариант. Засунуть переменную в файл, скопировать во второй контейнер и применить его там через source например.
Обсуждают сегодня