Crea ed esegui il push di un'immagine Docker con Cloud Build
Scopri come iniziare a utilizzare Cloud Build creando un'immagine Docker ed eseguendo il push dell'immagine ad Artifact Registry. Artifact Registry fornisce un'unica posizione per la gestione dei pacchetti privati e delle immagini container Docker.
Per prima cosa, creerai l'immagine utilizzando un Dockerfile
, ovvero il file di configurazione Docker, e poi la stessa immagine utilizzando il file di configurazione Cloud Build.
Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Assicurati che l'account di servizio Compute Engine predefinito disponga delle autorizzazioni necessarie.
- Aggiungi il ruolo
storage.objectUser
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/storage.objectUser"
- Aggiungi il ruolo
artifactregistry.writer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/artifactregistry.writer"
-
Aggiungi il ruolo
iam.serviceAccountUser
, che include l'autorizzazioneactAs
per eseguire il deployment nel runtime:gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/iam.serviceAccountUser" \ --project=PROJECT_ID
Se hai difficoltà ad aggiungere uno di questi ruoli, contatta l'amministratore del progetto.
Prepara i file di origine da creare
Avrai bisogno di codice sorgente di esempio da pacchettizzare in un'immagine container. In questa sezione,
creerai uno script shell e un Dockerfile
. Un Dockerfile
è un documento di testo che contiene le istruzioni per la creazione di un'immagine da parte di Docker.
Apri una finestra del terminale.
Crea una nuova directory denominata
quickstart-docker
e accedi alla directory:mkdir quickstart-docker cd quickstart-docker
Crea un file denominato
quickstart.sh
con i seguenti contenuti:Crea un file denominato
Dockerfile
con i seguenti contenuti:Nella finestra del terminale, esegui questo comando per rendere eseguibile
quickstart.sh
:chmod +x quickstart.sh
Crea un repository Docker in Artifact Registry
Crea un nuovo repository Docker denominato
quickstart-docker-repo
nella localitàus-west2
con la descrizione "Docker repository" (Repository Docker):gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
Verifica che il repository sia stato creato:
gcloud artifacts repositories list
Vedrai
quickstart-docker-repo
nell'elenco dei repository visualizzati.
Crea un'immagine utilizzando Dockerfile
Cloud Build ti consente di creare un'immagine Docker utilizzando un
Dockerfile
. Non è necessario un file di configurazione Cloud Build separato.
Per eseguire il build utilizzando un Dockerfile
:
Recupera l'ID progetto Google Cloud eseguendo il seguente comando:
gcloud config get-value project
Esegui questo comando dalla directory contenente
quickstart.sh
eDockerfile
:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1
Al termine della compilazione, vedrai un output simile al seguente:
DONE
------------------------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
545cb89c-f7a4-4652-8f63-579ac974be2e 2020-11-05T18:16:04+00:00 16S gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
Hai appena creato un'immagine Docker denominata quickstart-image
utilizzando Dockerfile
e ne hai eseguito il push ad Artifact Registry.
Crea un'immagine utilizzando un file di configurazione della build
In questa sezione utilizzerai un file di configurazione Cloud Build per creare la stessa immagine Docker riportata sopra. Il file di configurazione di compilazione indica a Cloud Build di eseguire attività in base alle tue specifiche.
Nella stessa directory contenente
quickstart.sh
eDockerfile
, crea un file denominatocloudbuild.yaml
con il seguente contenuto. Questo file è il tuo file di configurazione della build. In fase di compilazione, Cloud Build sostituisce automaticamente$PROJECT_ID
con il tuo ID progetto.Avvia la build eseguendo questo comando:
gcloud builds submit --region=us-west2 --config cloudbuild.yaml
Al termine della compilazione, viene visualizzato un output simile al seguente:
DONE
------------------------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
046ddd31-3670-4771-9336-8919e7098b11 2020-11-05T18:24:02+00:00 15S gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
Hai appena creato quickstart-image
utilizzando il file di configurazione della build e hai eseguito il push dell'immagine ad Artifact Registry.
Visualizza i dettagli della build
Apri la pagina Cloud Build nella console Google Cloud.
Se necessario, seleziona il progetto e fai clic su Apri.
Viene visualizzata la pagina Cronologia build:
Se necessario, seleziona
us-west2
nel menu a discesa Regione per visualizzare le build nella regione in questione.Verranno elencate due build, una per ogni build eseguita in questo inizio rapido.
Fai clic su una delle build.
Viene visualizzata la pagina Dettagli build.
Per visualizzare gli artefatti della build, in Riepilogo build, fai clic su Artefatti build.
Vedrai un output simile al seguente:
Da questa pagina puoi scaricare il log di build e visualizzare i dettagli dell'immagine in Artifact Registry.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate su questa pagina, segui questi passaggi.
Apri la pagina Artifact Registry nella console Google Cloud.
Seleziona il progetto e fai clic su Apri.
Seleziona quickstart-docker-repo.
Fai clic su Elimina.
Hai eliminato il repository che hai creato nell'ambito di questa guida rapida.
Passaggi successivi
- Scopri come eseguire un'immagine Docker.
- Scopri come creare un file di configurazione della build di base.
- Scopri come eseguire il deployment utilizzando Cloud Build.
- Scopri come creare applicazioni Node.js.
- Scopri come creare applicazioni Java.
- Scopri come creare applicazioni Go.