Google Cloud - Полный CI/CD с НУЛЯ - Сборка и Деплой Docker Image из GitHub через Cloud Build

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 พ.ย. 2021
  • #googlecloud #devops #девопс #serverless
    Google Cloud - Полный Serverless CI/CD Pipeline - Собираем и Деплоим Docker Image из GitHub через Cloud Build в Cloud Run
    github.com/adv4000/gcp-cicd-c...
    Если помог, поддержите парой баксов, хотябы Канадских :) www.paypal.me/DenisAstahov
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 62

  • @Mausspb
    @Mausspb 2 ปีที่แล้ว +11

    Гораздо проще понимать, что будет в видео, когда вначале есть план-схема. Простой проект, все понятно реализовано. Спасибо за ваш труд !

  • @fancystacy
    @fancystacy ปีที่แล้ว +2

    Шикарно. Побольше бы такой полезной информации. Большое спасибо. Цьом!

  • @user-qz8ch2vs9n
    @user-qz8ch2vs9n 2 ปีที่แล้ว +1

    Денис, здарова! Спасибо за материал! Очень полезно!

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      You are Welcome!

  • @viktorkrechikov7293
    @viktorkrechikov7293 2 ปีที่แล้ว +1

    Thanks for this video!! Great job Denis any way for me!

  • @dmitry_5525
    @dmitry_5525 2 ปีที่แล้ว

    Как всегда спасабо! Как лучше делать, папку с программой заливать в образ или папку с программой на хосте монтировать в образе?

  • @tomtovski9270
    @tomtovski9270 2 ปีที่แล้ว

    Денис привет! В очередной раз огромное тебе спасибо за твой труд. Лучший канал на данную тематику. Я хоть далеко не девопс, но сталкиваюсь с похожими вопросами каждый день. А учитывая тот факт, что у меня нет опыта в IT от слова совсем, твоя подача материала просто идеальна для таких как я.
    Хотел спросить, не планируешь ли ты уроки по Азуре? После AWS она кажется такой запутанной и неудобной. Но хотелось бы разобраться. А с твоей помощью это было бы круто и весело. Спасибо)

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว +1

      Не не планирую, я им вообще не занимаюсь и особо не знаю

    • @tomtovski9270
      @tomtovski9270 2 ปีที่แล้ว

      @@ADV-IT Ну ладно. Спасибо за быстрый ответ. Как всегда)

  • @OlegLoginov911
    @OlegLoginov911 2 ปีที่แล้ว +2

    Суперское видео, как и предыдущее! Планируются ли ещё ролики на GCP в таком же объеме, как по AWS?) На работе используем GCP, но русскоязычных роликов, самое главное понятных и толковых, нет. А на вашем канале много полезных вещей уже для себя подчерпнул

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว +2

      В таком объеме не будет :)
      Следующее тоже про GCP буднт

    • @OlegLoginov911
      @OlegLoginov911 2 ปีที่แล้ว

      @@ADV-IT отлично)
      Подскажите, а dbt вы в своей работе не используете?

  • @markvalman8325
    @markvalman8325 2 ปีที่แล้ว +1

    מדהים, תודה!

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      Bevakasha!

  • @user-gq8vb6ie3w
    @user-gq8vb6ie3w 11 หลายเดือนก่อน

    а запускать docker -compose файлы он может или только dockerfile ?

  • @rgsx69
    @rgsx69 2 ปีที่แล้ว +1

    Спасибо. Очень полезно!

  • @evgeniichornyi678
    @evgeniichornyi678 2 ปีที่แล้ว +1

    Спасибо!, Хотелось бы подобное видео по AWS

  • @olegderivedmed9285
    @olegderivedmed9285 ปีที่แล้ว

    Здравствуйте, на степе пуша валится с ошибкой " error parsing HTTP 404 response body: invalid character......." Никто не сталкивался с этим? Все пермишны дал, настроил как по видео.

  • @12389441
    @12389441 ปีที่แล้ว

    Error 404 - Cloud Run запускает my-docker-app-prod с правами Require authentication. Как задать Allow unauthenticated invocations на этапе Deploy?

  • @BorysOliinyk
    @BorysOliinyk 2 ปีที่แล้ว

    Подскажите, а можно ли все это сделать в рамках одного проекта, без разделения на прод, стейдж, менеджмент?
    Если можно, то в чем преимущество разделения?

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว +3

      Можно конечно в одном проекте и это будет проще намного, только разделение это полная изоляция ресурсов и плюс ты контролируешь стоимость каждого проекта.
      В Одном проекте = не профессионально в детском саде.
      Разделение по проектам = профессионально на работе.

  • @daviddav4778
    @daviddav4778 2 ปีที่แล้ว +1

    меня нравится и "веб программирование" и "сисадмин", пожалуста скажите,в таком случае, как решить, какой выбрать? (кратко плюсы и минусы можете сказать?)

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      Учи и то и то, в чем найдешь первую работу, там и останешся

  • @MrSerogKa
    @MrSerogKa 2 ปีที่แล้ว

    классное видео! Был ли у вас опыт работы з задачей по промоушену докер имеджей из стейджа в прод?

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      Зачем? Если image работает в stage то просто собирай туже версию в таком prod или latest.
      В этом примере я показал как это реально делают

    • @MrSerogKa
      @MrSerogKa 2 ปีที่แล้ว

      @@ADV-IT ну да. Просто это одна из стратегий доставки кода, когда один контейнер должен одинаково работати на любом стейдже. А факту имедж просто перетэгуеться и переносится в другой реджестри

    • @denisastahov505
      @denisastahov505 2 ปีที่แล้ว +2

      @@MrSerogKa Мы с git branch работаем только, и просто делаем новый image при merge to main.

  • @drysha
    @drysha ปีที่แล้ว

    Спасибо за хороший урок. Я пытаюсь залить свой проект на GcP, но дело в том, что я его реализовал все в 1 репо: frontend + backend(+sql) и собирается это все через docker compose. Локально командой docker-compose up -d --build все собирается в 1 контейнере с 3 имиджами: front - angular, back - nestjs, mySQL. Могли бы подсказать в какую сторону смотреть, что бы сделать подобное в GcP. Сорри за такой "нюбский" вопрос, но в DevOps части я не селен )

    • @kolobroadgh8532
      @kolobroadgh8532 ปีที่แล้ว

      привет, получилось разобраться как это делать?

    • @drysha
      @drysha ปีที่แล้ว

      @@kolobroadgh8532 привет, неа.. пока так и оставил отдельный репо для фронта и бэка 😴

    • @kolobroadgh8532
      @kolobroadgh8532 ปีที่แล้ว

      @@drysha chatgpt говорит что выход это билдить все по отдельности а потом подружить через кубик или какой-то другой гугл сервис. Кажется композ тут не сработает :(

  • @roshkovm
    @roshkovm 2 ปีที่แล้ว +1

    Развертывание и деплой в k8s планируется?

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว +3

      Да слелаю как нибудь, на самом деле это также просто сделать.
      В GitHub лежат manifest файлы, у CodeBuild есть permission деплоить в GKE, ну и все, запускай команды сначала getcredentilals, а потом kubectl apply -f

  • @12389441
    @12389441 2 ปีที่แล้ว

    А это все можно описать с помощью Terraform или подключение триггеров только в ручную?

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว +1

      Все что делается на GCP можно сделать через Terraform

  • @denis7hko
    @denis7hko 2 ปีที่แล้ว

    Что и как нужно сделать, чтоб высылались уведомления на почтовый ящик о статусе сборки ? Сборка завершилась удачно, сборка завершилась с ошибкой и т.п.

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      cloud.google.com/build/docs/subscribe-build-notifications

  • @user-qe4sc3kl5g
    @user-qe4sc3kl5g 2 ปีที่แล้ว

    Денис, спасибо за ролики)
    Планируется ли на канале уроки по Packer/Vagrant/Chef?

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว +2

      Нет не планирую, давно думал сделать по packer, потом глянул, там много поменялось с того момента когда я его последний раз использовал

  • @Roman4ello
    @Roman4ello 2 ปีที่แล้ว

    Денис, а ты не думал создать курс по GCP. Я обещаю его купить!!!

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      Начинал, th-cam.com/video/5wEbNSrs098/w-d-xo.html

    • @Roman4ello
      @Roman4ello 2 ปีที่แล้ว

      @@ADV-IT Да, я видел. И твои уроки очень крутые. Простым языком рассказываешь четко все. Надеюсь будет продолжение. Если будет платно, сообщи тут пожалуйста, где можно купить. Я считаю за твой труд ты вполне можешь сделать курс платным

  • @dmitriybondarenko5411
    @dmitriybondarenko5411 2 ปีที่แล้ว +1

    Скажи пожалуйста, а планируешь ли ты подобный урок по AWS с их CodePipeline? Было бы круто
    З.Ы. спасибо за уроки) ты крут))

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว +1

      Вообще нет, но может быть.

  • @an47995s
    @an47995s 2 ปีที่แล้ว

    прикольный проект, интересно, насколько сложнее сделать всё то же самое терраформом

    • @4988925
      @4988925 2 ปีที่แล้ว

      Проще раз в 5 наверное хотя бы из-за отсутствия гемороя с yaml как надумал так и пишешь

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      Я делал всё это terraformом на проекте, не очень сложно, самое сложное это прописать правильные permissions по проектам

    • @an47995s
      @an47995s 2 ปีที่แล้ว

      @@ADV-IT а каким ресурсом можно декларировать permissions, через security groups? а потом уже привязывать sg к нашим ресурсам в проектах?

    • @ADV-IT
      @ADV-IT  2 ปีที่แล้ว

      resource "google_project_service_identity"
      resource "google_project_iam_member"
      resource "google_artifact_registry_repository_iam_member"

  • @user-ds1sp8wt1u
    @user-ds1sp8wt1u ปีที่แล้ว +1

    Почти все получилось, но на запуске выдает ошибку "run.services.get"
    Всем начал добавлять уровни доступа, дошел до того, что все проекты имеют максимум (все владельцы), а ошибка все равно не пропадает. Вероятно, добавлял не туда, хотя проектов всего три и ошибиться особенно негде, как мне казалось
    Словом, тема permissions не просто сложная, а вообще не понятная - что, куда и кому давать, а также почему именно выдается эта ошибка при обращении к сервису "hello-prod" (сервис с таким именем существует, тоже проверил неоднократно)

    • @ADV-IT
      @ADV-IT  ปีที่แล้ว

      Я же в видео всё показал, может ты пропустил где-то

    • @user-ds1sp8wt1u
      @user-ds1sp8wt1u ปีที่แล้ว +1

      @@ADV-IT Маловероятно, но возможно. Я очень аккуратно изучаю материал, примерно 20 минут видео у меня занимает около 3-4 часов в продвижении и понимании. На данный момент все проекты поудалял - буду опять пошагово выполнять все действия.
      В одном из видео твоих курсов уже сталкивался с подобной проблемой, но она как-то решилась после добавления дополнительных ролей. Мне кажется, они внесли изменения в одну из ролей на видео, убрав run.services.get и поставив эту команду в другую роль.

    • @user-ds1sp8wt1u
      @user-ds1sp8wt1u ปีที่แล้ว +1

      ​@@ADV-IT У тебя шикарный канал !!!
      Практически все, что я выучил на практике из облачных технологий - благодаря тебе. Огромное спасибо !!!
      Кратко, доступно, а главное, это можно самому попробовать сделать и практически все получается с первого раза :)
      РЕСПЕКТ !!!

    • @user-ds1sp8wt1u
      @user-ds1sp8wt1u ปีที่แล้ว +1

      @@ADV-IT P.S. И это при том, что данная область не является моей профессией (я все начал изучать с нуля по ютубу), и мое изучение лишь на уровне хобби или простого интереса :)

  • @VINT-IT
    @VINT-IT ปีที่แล้ว +2

    На последнем этапе 2:DEPLOY выдает вот такую ошибку:
    Already have image (with digest): gcr.io/cloud-builders/gcloud
    ERROR: (gcloud.run.services.update) PERMISSION_DENIED: Permission denied on resource project prod.
    - '@type': type.googleapis.com/google.rpc.Help
    links:
    - description: Google developer console API key
    url: console.developers.google.com/project/prod/apiui/credential
    - '@type': type.googleapis.com/google.rpc.ErrorInfo
    domain: googleapis.com
    metadata:
    consumer: projects/prod
    service: run.googleapis.com
    reason: CONSUMER_INVALID
    Денис HEEELP ! Все мозги поломал... (проект называется prod для прод сбоки)

    • @ADV-IT
      @ADV-IT  ปีที่แล้ว

      Внимательно посмотри какие permissions ты добавил, я же все описал подробно,
      Вот тут тоже описал: github.com/adv4000/gcp-cicd-cloudruns

    • @VINT-IT
      @VINT-IT ปีที่แล้ว +1

      @@ADV-IT Денис, в том то и дело что у тебя все предельно понятно расписано и показано ! Проверял не раз. Прошлый урок тоже на деплое замедлился так и не поборол. Кто-то до меня что-то похожее писал. Что-то не то с этим фри аккаунтом. Больше пяти проектов не дают завести. Удалить хотел и по новой с нуля - фиг они висят в статусе удалены сутки, новые не дают заводить.

    • @VINT-IT
      @VINT-IT ปีที่แล้ว +3

      ФУУХ 2 дня на пермишены убил )))) А дело было вовсе не в них. В файле cloudbuild.prod.yaml в нижних параметрах нужно было вводить ID проекта а не имя.
      _SERVICE_PROJECT : prod-367714
      имя у него в моем случае просто prod.
      Денис в своих примерах спецом создавал проекты с ID равным названию, но по дефолту это не так.
      А я 2 дня в пермишенах копался ))). Зато уже ас теперь в них ))).
      Да и кстати билд с версией образа ubuntu:21.04 фэйлится на момент написания - поменял его в докефайле на ubuntu:22.04.
      Спасибо всем за внимание и Денису таксама !

    • @ADV-IT
      @ADV-IT  ปีที่แล้ว

      @@VINT-IT Молодец, рад что всё получилось!

    • @Dinasdas
      @Dinasdas ปีที่แล้ว +1

      @@VINT-IT спасибо тебе добрый человек, 3 дня убил на выдачу прав, весь гугл вдоль и поперек перечитал, все делаю как написано, а оказалось что дело в id project. Хотя на предыдущем уроке уже была такая же проблема и тоже было дело в названии проекта, но там как то явно была ошибка и получилось быстрее решить.