Почему многоступенчатая сборка docker застревает на "COPY --from = builder ..." - PullRequest
0 голосов
/ 06 апреля 2020

Контекст выглядит следующим образом:

  • Jenkins
  • Плагин Kubernetes
  • Docker -in-Docker / dind-контейнер
  • Multi Dockerfile

Поток выглядит следующим образом:

  1. pull builder docker pull repo/image:builder
  2. build builder DOCKER_BUILDKIT=1 docker build . --build-arg BUILDKIT_INLINE_CACHE=1 --target builder --cache-from repo/image:builder --tag repo/image:builder
  3. pu sh builder docker push repo/image:builder
  4. pull image docker pull repo/image:tag
  5. build image DOCKER_BUILDKIT=1 docker build . --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from repo/image:builder --cache-from repo/image:tag --tag repo/image:tag
  6. pu sh image docker push repo/image:tag

Dockerfile:

FROM node:8.16.0 as builder

WORKDIR /app
RUN mkdir /app/frontend
COPY frontend/package.json /app/frontend/
WORKDIR /app/frontend
RUN npm install
COPY frontend /app/frontend
RUN npm run build
FROM nginx:1.13.8-alpine
WORKDIR /project/web
COPY --from=builder --chown=nginx:nginx /app/frontend/built /project/web/public

При COPY --from=builder --chown=nginx:nginx /app/frontend/built /project/web/public сборка docker застревает навсегда (через 30-40 минут, после чего я останавливаю ее вручную) без ошибок.

РЕДАКТИРОВАТЬ: При при первом запуске, когда образы еще не представлены в реестре, кэширование компоновщика и COPY --from=builder работает, как ожидается. Только со второй сборки он застревает на COPY --from=builder

1 Ответ

0 голосов
/ 09 апреля 2020

Я не знаю, в чем проблема, но кажется, что это tiborvass/docker:19.03.8-dind-bk1413 dind изображение стабильно и работает без зависаний.

https://github.com/moby/buildkit/issues/1430

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...