Crea ed esegui il push di un'immagine Docker con Cloud Build
Scopri come iniziare a utilizzare Cloud Build creando un'immagine Docker ed eseguendone il push ad Artifact Registry. Artifact Registry fornisce un'unica posizione per la gestione dei pacchetti privati e delle immagini container Docker.
Innanzitutto, creerai l'immagine utilizzando un Dockerfile, ovvero il file di configurazione Docker, e poi creerai la stessa immagine utilizzando il file di configurazione di Cloud Build.
Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un'immagine Docker e eseguirne il push in Artifact Registry, chiedi all'amministratore di concederti i seguenti ruoli IAM sul account di servizio Cloud Build:
- Amministratore Artifact Registry (
roles/artifactregistry.admin) - Editor Cloud Build (
roles/cloudbuild.builds.editor) - Logs Writer (
roles/logging.logWriter) - Visualizzatore bucket di archiviazione (
roles/storage.bucketViewer) - Storage Object User (
roles/storage.objectUser)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Prepara i file di origine da creare
Avrai bisogno di un 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 Docker per creare un'immagine.
Apri una finestra del terminale.
Crea una nuova directory denominata
quickstart-dockere accedi alla directory:mkdir quickstart-docker cd quickstart-dockerCrea un file denominato
quickstart.shcon i seguenti contenuti:Crea un file denominato
Dockerfilecon 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
Utilizza il comando
gcloud artifacts repositories createper creare un repository Docker denominatoquickstart-docker-reponella localitàus-west2con la descrizione "Docker repository":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 listL'elenco dei repository visualizzati deve includere
quickstart-docker-repo.Artifact Registry utilizza una convenzione di denominazione per identificare repository e immagini. Ad esempio, quando interagisci con le immagini Docker archiviate in Artifact Registry nella regione
us-west2, utilizzius-west2-docker.pkg.devcome nome host del registro nei tuoi comandi.
Crea un'immagine utilizzando un Dockerfile
Utilizza il comando gcloud builds submit per
creare un'immagine Docker utilizzando un Dockerfile. Non è necessario un file di configurazione
Cloud Build separato.
Recupera l'ID progetto Google Cloud eseguendo questo comando:
gcloud config get-value projectEsegui questo comando dalla directory contenente
quickstart.sheDockerfile:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1Al termine della build, l'output dovrebbe essere 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 utilizzi un file di configurazione Cloud Build per creare la stessa immagine Docker creata nei passaggi precedenti. Il file di configurazione di compilazione indica a Cloud Build di eseguire attività in base alle tue specifiche.
Nella stessa directory contenente
quickstart.sheDockerfile, crea un file denominatocloudbuild.yamlcon il seguente contenuto. Questo file è il file di configurazione della build. Al momento della build, Cloud Build sostituisce automaticamente$PROJECT_IDcon l'ID progetto.Avvia la build eseguendo questo comando:
gcloud builds submit --region=us-west2 --config cloudbuild.yamlAl termine della build, l'output dovrebbe essere 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-west2nel menu a discesa Regione per visualizzare le build in questa regione.Verranno elencate due build, una per ciascuna delle build eseguite in questa guida rapida.
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.
Dovresti vedere 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 in 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.