Докер игнорирует шаг для того же имени изображения - PullRequest
0 голосов
/ 26 марта 2019

Я новичок в докере, чтобы понять, что я пытаюсь создать простой образ, но в моем случае некоторые шаги в сборке игнорируются, если я снова использую то же имя образа.

Я уверен, что я делаю это неправильно, но просто не понимаю, почему это происходит.

ниже находится докер-файл

FROM ubuntu AS base
COPY ./runner1/data /app

FROM base
COPY ./runner1/dep /app

FROM base AS final
COPY ./runner1/sample.sh /app/sample.sh
RUN chmod u+x /app/sample.sh
ENTRYPOINT [ "sh", "/app/sample.sh" ]
Building runner1
Step 1/8 : FROM ubuntu AS base
 ---> 94e814e2efa8
Step 2/8 : COPY ./runner1/data /app
 ---> Using cache
 ---> 675aabaf1cc0

Step 3/8 : FROM base
 ---> 675aabaf1cc0
Step 4/8 : COPY ./runner1/dep /app
 ---> Using cache
 ---> dcd1a390efd3

Step 5/8 : FROM base AS final
 ---> 675aabaf1cc0
Step 6/8 : COPY ./runner1/sample.sh /app/sample.sh
 ---> Using cache
 ---> 99b286322a7c
Step 7/8 : RUN chmod u+x /app/sample.sh
 ---> Using cache
 ---> 3599903cb1b8
Step 8/8 : ENTRYPOINT [ "sh", "/app/sample.sh" ]
 ---> Using cache
 ---> 977e3379ab8c

Successfully built 977e3379ab8c
Successfully tagged sampleimage_runner1:latest

При запуске я вижу только папку / app / data, скопированную из образа '675aabaf1cc0', изображение 'dcd1a390efd3' из шага 3,4, похоже, игнорируется.

1 Ответ

0 голосов
/ 26 марта 2019

Вы устанавливаете base в качестве родительского изображения для вашего второго этапа, но вы никогда не использовали свой второй этап где-либо еще.Я полагаю, что вы можете явно построить с целью, установленной в 2, чтобы увидеть изображение, полученное в результате.

Если вы намеревались использовать выходные данные этапа 2 в качестве родительского изображения этапа 3, то вам нужно назватьвторой этап, и используйте имя этого второго этапа в качестве родителя для этапа 3. Например,

FROM ubuntu AS base
COPY ./runner1/data /app

FROM base as middle
COPY ./runner1/dep /app

FROM middle AS final
COPY ./runner1/sample.sh /app/sample.sh
RUN chmod u+x /app/sample.sh
ENTRYPOINT [ "sh", "/app/sample.sh" ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...