Поиск по сайту:

Настройка автоматической сборки контейнеров с помощью GCP Cloud Build


Непрерывное развертывание и интеграция — это процесс автоматического запуска тестов и сборок всякий раз, когда вносятся изменения в исходный код. Вы можете настроить Google Cloud Platform (GCP) для запуска автоматических сборок Docker всякий раз, когда вы обновляете свой контейнер, и выполнить развертывание в Cloud Run или Google Kubernetes Engine (GKE).

В целом, настройка для этого довольно проста — Dockerfiles уже обрабатывает большую часть конфигурации сборки, поэтому все, что требуется от вас, — это связать вместе несколько сервисов и настроить Cloud Build для развертывания обновлений в Cloud Run или GKE.

Создайте облачный репозиторий исходного кода

Cloud Build извлекает код из Cloud Source, собственного управляемого решения Git от Google. Однако вам не придется переходить от вашего текущего провайдера, так как вы можете просто связать свою учетную запись GitHub или Bitbucket или просто настроить ее как отдельный удаленный выпуск.

Перейдите в консоль Cloud Source и создайте новый репозиторий. Дайте ему имя и войдите в свою учетную запись, чтобы выбрать репозиторий.

Если вы добавляете его как отдельный удаленный сервер, вы можете добавить репозиторий с помощью заданной команды git remote add , которая сделает его доступным под удаленным именем «google». ” Чтобы выполнить отправку в эту ветку, все, что вам нужно сделать, это полностью указать удаленное имя и имя ветки при запуске git push, заменив значение по умолчанию origin на google:

git push --all google

Настройка облачной сборки

Перейдите в консоль Cloud Build и настройте новый триггер сборки:

Этот триггер будет запускаться в ответ на события в исходном репозитории. Дайте ему имя и выберите, хотите ли вы построить в ответ на коммиты в определенной ветке, или когда новые теги отправляются, или когда запросы на вытягивание делаются в GitHub.

Ниже выберите «Dockerfile» в качестве конфигурации сборки, а не собственную конфигурацию Google YAML. В этом преимущество работы с контейнерами; вы уже обработали процесс сборки в конфигурации Docker, поэтому вы можете просто выбрать его здесь.

Если ваш Dockerfile называется «Dockerfile» и находится в корне репозитория, вы можете оставить первые два поля пустыми. Имя изображения будет отправлено в GCR, собственный реестр контейнеров Google.

gcr.io/$PROJECT_ID/imagename:$COMMIT_SHA

После создания вы можете нажать «Запустить триггер», чтобы вручную запустить сборку. Поскольку Cloud Build просто использует ваш Dockerfile, если он собирается локально, у вас не должно возникнуть проблем со сборкой.

Если вы перейдете к консоли GCR, вы должны увидеть только что созданный образ.

Настройка автоматического развертывания в Cloud Run

Вы можете вручную обновлять свои развертывания, но если вы хотите выполнять автоматические обновления, вам потребуется немного больше настроек.

Вместо того, чтобы выбирать только Dockerfile, вы можете использовать традиционный файл YAML, который позволит вам запускать некоторые команды после процесса сборки. В этом случае запустите gcloud run deploy и передайте ему ссылку на вновь созданный образ в GCR.

steps:
# build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA', '.']
# push the container image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA']
# Deploy container image to Cloud Run
- name: 'gcr.io/cloud-builders/gcloud'
args:
- 'run'
- 'deploy'
- '[SERVICE-NAME]'
- '--image'
- 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA'
- '--region'
- '[REGION]'
- '--platform'
- 'managed'
images:
- 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA'

Вам также потребуется предоставить Cloud Build разрешение на доступ к Cloud Run из настроек учетной записи службы.