Рубрики
Uncategorized

Автоматизация Docker Build и нажмите с помощью GitLab CI

Таким образом, у вас есть ваш проект Doceerized Project, чтобы подтолкнуть к Docker Hub? Давайте автоматизируем этот процесс, используя … Теги с CICD, Gitlab, Docker, Devops.

Таким образом, у вас есть ваш проект 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»