Таким образом, у вас есть ваш проект Doceerized Project, чтобы подтолкнуть к Docker Hub? Давайте автоматизируем этот процесс с помощью GitLab CI.
Сначала зарегистрируйтесь или войдите в систему на https://hub.docker.com/ Затем создайте токен доступа, перейдя на настройки, затем Security> Новый токен доступа. Примите к сведению созданный токен, насколько нам понадобится в следующих шагах. Посетить https://docs.docker.com/docker-hub/access-tokens/ для справки.
Далее необходимо создать проект GitLab. Тогда иди к Настройки
> CI/CD
нажмите на Расширять
в Переменные
Раздел и добавьте следующие переменные с соответствующими значениями:
-
Ci_registry
=>docker.io
-
Ci_registry_image
=>index.docker.io/DOCKER_USERNAME/image_name
-
Ci_registry_user
=> Докер Hub Имя пользователя -
Ci_registry Token
=> Docker Hub Token создан на первом шаге
Обязательно защитите и замаскируйте свои переменные Отказ
Затем установите свой локальный проект, чтобы использовать этот вновь созданный репозиторий.
git remote add origin GITLAB_PROJECT_REPOSITORY
В вашем каталоге проекта создайте файл с именем .gitlab-ci.yml
и введите код ниже:
image: docker:19.03.12 stages: - build - push services: - docker:19.03.12-dind before_script: - echo -n $CI_REGISTRY_TOKEN | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY Build: stage: build script: - docker pull $CI_REGISTRY_IMAGE:latest || true - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA # Tag the "master" branch as "latest" Push latest: stage: push only: - master script: - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest - docker push $CI_REGISTRY_IMAGE:latest # Docker tag any Git tag Push tag: stage: push only: - tags script: - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
Теперь совершать
и толчок
изменения в Мастер
Филиал, как это то, что в настоящее время определяется на нашем трубопроводе. После завершения ваш трубопровод будет работать. Вы можете увидеть, проверьте его, навигации по вашему проекту GitLab, затем CI/CD> трубопроводы.
После выполнения заданий ваше изображение будет доступно в Docker Hub.
Лишь сбоку Note, не используйте последнее или стабильное докерное изображение в вашем трубопроводе CI, потому что вы захотите воспроизводимость. Последние изображения сломают вещи. Всегда нацените на версию. Следовательно, Изображение: Докер: 19.03.12
используется здесь.
Счастливое кодирование!
Оригинал: «https://dev.to/johnkevinlosito/automate-docker-build-and-push-using-gitlab-ci-e7»