Как использовать основанный на kaniko gitlab-runner для создания образа node.js? - PullRequest
1 голос
/ 15 апреля 2019

Я использую самодостаточный репозиторий Gitlab для отправки своего кода. Код содержит Dockerfile, который успешно создает Docker-образ локально на моей машине. Теперь я намерен автоматизировать этот процесс сборки и интегрировать сборку docker в Gitlab-Pipeline. Я связан с общими бегунами, поэтому я не могу интегрировать своих собственных бегунов. И эти бегуны не настроены для простых сборок Docker-in-Docker. Я видел другой проект, который использует изображение gcr.io/kaniko-project/executor:debug для этой проблемы. Он успешно запускает процесс сборки моего Dockerfile, но после выполнения моего первого аргумента RUN он начинает добавлять миллионы артефактов в слой, пока он не замерзнет.

Я попытался заменить узел: последнее изображение на узел: тонкий, и он продвинулся на один шаг дальше в Dockerfile. Поэтому я думаю, что проблема заключается в загрузке базового изображения. Но я не могу понять причину.
Разве Kaniko не может загрузить базовый образ?
Нужно ли предоставлять базовое изображение другим способом?
У кого-нибудь есть пример для работающего конвейера kaniko, который строит образ на основе узла?

Следующая часть показывает логи бегуна.

<code><pre>
>Resolved base name node:latest to node:latest
>Downloading base image node:latest
>No matching credentials were found, falling back on anonymous
>Error while retrieving image from cache: getting file info: stat /cache   /sha256:a954de83ca1e2dfee3bdb4fedd56df42646f6325f50347482724626327b187c6: no such file or directory
>Downloading base image node:latest       
>No matching credentials were found, falling back on anonymous
>Built cross stage deps: map[]               
>Downloading base image node:latest          
>No matching credentials were found, falling back on anonymous
>Error while retrieving image from cache: getting file info: stat /cache
/sha256:a954de83ca1e2dfee3bdb4fedd56df42646f6325f50347482724626327b187c6: no such file or directory
>Downloading base image node:latest          
>No matching credentials were found, falling back on anonymous
>Unpacking rootfs as cmd RUN http_proxy=$proxy apt-get update &&     http_proxy=$proxy apt-get -y --no-install-recommends install apt-utils build-essential libudev-dev && true requires it. 
>Taking snapshot of full filesystem...        
>Adding /usr/share/icons/gnome/48x48/mimetypes/tgz.png to layer, because it was changed. 
>Adding /usr/share/icons/gnome/32x32/actions/stock_select-all.png to layer, because it was changed. 
>...Continues with adding stuff till it freezes

1 Ответ

0 голосов
/ 25 апреля 2019

Вам необходим отладочный образ исполнителя kaniko , который обеспечивает sh для выполнения gitlab-runner ci

build:
  image: gcr.io/kaniko-project/executor:debug
  stage: build
  script:
    - executor --dockerfile=Dockerfile --context=$PWD --no-push

причина этого в том, что если образ не позволяет запускать сценарии с CMD, образ не будет работать с исполнителем Docker. см. ссылку исполнитель докера gitlab runner

Для других docker push вы можете следовать примеру, чтобы добавить дополнительную конфигурацию в .gitlab-ci.yaml.

...