LINUX.ORG.RU

Правильный CI/CD с гитлабом.

 , ,


1

1

Сап лор, как правильно деплоить? Вот у меня есть локальный репозиторий в гитлабе, на дев машине я делаю git pull и docker build .. Затем просто запускаю контейнер и наступает счастье. Как это все грамотно автоматизировать? Я сделал гитлаб раннер пока с единственным стейджем

build_docker_image:
  stage: build_docker_image
  script:
    - docker build -t $image_tag .
    - docker run $image_tag
  tags:
    - vm2-renderapp-builder
Но у меня есть сомнения, что это делается именно так, дропать контейнер и каждый раз пересобирать новый?


build - это build, а run - это уже deploy.

сейчас это docker run, завтра раскатать на swarm, а послезавтра - в k8s. при этом билдовый стейдж меняться не будет.

before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY

script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE/${CI_JOB_NAME}" .
    - docker push "$CI_REGISTRY_IMAGE/${CI_JOB_NAME}"

ресстр тоже в комплекте с гитлабом есть.

а deploy уж как придумаешь.

aol ★★★★★ ()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от aol

Вот, спасибо. Т.е. в гитлаб-сиай только должны быть стейджи условно с билдом и запуском тестов, с этим ок. А где тогда собирать сам имейдж? Я понимаю что у гитлаба есть своей регистри, но ведь образ должен туда сначала как-то попасть?

cr0 ()
Ответ на: комментарий от cr0

где тогда собирать сам имейдж

в гитлабовском сиае, естессна! :)

но ведь образ должен туда сначала как-то попасть?

так я тебе как раз кусок билдового стейджа процитировал. вот так и попадает.

логинишься в реестр, билдишь в сиае, пущишь в реестр. на этом билд заканчивается.

aol ★★★★★ ()