/gitlab-ci-push-to-gcr

Example of how to push with Gitlab CI to Google Cloud Registry

Primary LanguageDockerfile

Push to Google Cloud Registry via Gitlab CI

This repository is to demonstrate workflow:

  • Build docker image in CI
  • Push it to Gitlab Registry (so we can run tests on it etc)
  • If everything is ok then push it to Google Cloud Registry (GCR) so we can use it in Google Cloud etc for Kubernetes

Environment variables:

  • GOOGLE_CLOUD_ACCOUNT - google cloud service account credentials (see below how to get it)
  • GITLAB_IMAGE - where we push go Gitlab Registry
  • GCR_IMAGE - where we push to Google Cloud Registry

Images variables can be set in Gitlab's settings or in your .gitlab-ci.yml file:

variables:
  GITLAB_IMAGE: registry.gitlab.com/author-name/my-project
  GCR_IMAGE: eu.gcr.io/my-project/image-name

I recommend setting GOOGLE_CLOUD_ACCOUNT via protected variables Settings -> CI/CD -> Environment variables

How do I get GOOGLE_CLOUD_ACCOUNT variable content?

  1. Go to your Google Cloud account
  2. Pick a project
  3. Create service account with Storage admin role (IAM & Admin -> Service accounts -> Create service account)
  4. Copy the json key and enter it to gitlab

Notes