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
Но у меня есть сомнения, что это делается именно так, дропать контейнер и каждый раз пересобирать новый?


Правильные сомнения, наверняка можно сделать экономичнее. Как - не знаю.

Einstok_Fair ★★☆
()

Как минимум разделить сборку и деплой по разным стэйджам.

redwagon
()

Обычно в таких случаях сначала обмазываются k8s, helm, потом идут масштабировать.

redwagon
()

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 ★★★★★
()
Ответ на: комментарий от aol

Короче, я тупой. Это должно быть описано в gitlab-ci и делаться раннером, билд и пулл в регистри? Или это как-то делается в самом инстансе гитлаба?

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

да, это всё в .gitlab-ci.yml никакой уличной магии

aol ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.