Crear y enviar una imagen Docker con Cloud Build
Aprende a empezar a usar Cloud Build creando una imagen Docker y enviándola a Artifact Registry. Artifact Registry proporciona una única ubicación para gestionar paquetes privados e imágenes de contenedores Docker.
Primero, compilarás la imagen con un Dockerfile
, que es el archivo de configuración de Docker, y, después, compilarás la misma imagen con el archivo de configuración de Cloud Build.
Para seguir las instrucciones paso a paso de esta tarea directamente en el editor de Cloud Shell, haz clic en Ayúdame:
Antes de empezar
- 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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Make sure that you have the following role or roles on the project: Artifact Registry Administrator, Cloud Build Editor, Logs Viewer, Service Account User, Service Usage Admin, Storage Bucket Viewer, Storage Object Creator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- En la lista Selecciona un rol, elige un rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- Haz clic en Guardar.
Abre una ventana de terminal.
Crea un directorio llamado
quickstart-docker
y accede a él:mkdir quickstart-docker cd quickstart-docker
Crea un archivo llamado
quickstart.sh
con el siguiente contenido:Crea un archivo llamado
Dockerfile
con el siguiente contenido:En la ventana del terminal, ejecuta el siguiente comando para que
quickstart.sh
sea ejecutable:chmod +x quickstart.sh
Crea un repositorio de Docker llamado
quickstart-docker-repo
en la ubicaciónus-west2
con la descripción "Repositorio de Docker":gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
Verifica que se ha creado el repositorio:
gcloud artifacts repositories list
Verás
quickstart-docker-repo
en la lista de repositorios mostrados.Para obtener el ID de tu proyecto de Google Cloud , ejecuta el siguiente comando:
gcloud config get-value project
Ejecuta el siguiente comando desde el directorio que contiene
quickstart.sh
yDockerfile
:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1
En el mismo directorio que contiene
quickstart.sh
yDockerfile
, crea un archivo llamadocloudbuild.yaml
con el siguiente contenido. Este archivo es tu archivo de configuración de compilación. Durante la compilación, Cloud Build sustituye automáticamente$PROJECT_ID
por el ID de tu proyecto.Para iniciar la compilación, ejecuta el siguiente comando:
gcloud builds submit --region=us-west2 --config cloudbuild.yaml
Abre la página Cloud Build en la Google Cloud consola.
Si es necesario, selecciona el proyecto y haz clic en Abrir.
Verás la página Historial de compilaciones:
Si es necesario, selecciona
us-west2
en el menú desplegable Región para ver las compilaciones de esa región.Se mostrarán dos compilaciones, una por cada una de las compilaciones que has ejecutado en esta guía de inicio rápido.
Haz clic en una de las compilaciones.
Verás la página Detalles de la compilación.
Para ver los artefactos de tu compilación, en Resumen de la compilación, haz clic en Artefactos de la compilación.
Verá un resultado similar al siguiente:
En esta página, puede descargar el registro de compilación y ver los detalles de la imagen en Artifact Registry.
Abre la página Artifact Registry en la Google Cloud consola.
Selecciona el proyecto y haz clic en Abrir.
Selecciona quickstart-docker-repo.
Haz clic en Eliminar.
- Consulta cómo ejecutar una imagen de Docker.
- Consulta cómo crear un archivo básico de configuración de versiones.
- Consulta cómo desplegar con Cloud Build.
- Consulta cómo desarrollar aplicaciones Node.js.
- Consulta cómo crear aplicaciones Java.
- Consulta cómo crear aplicaciones Go.
Preparar los archivos de origen para compilar
Necesitarás un código fuente de ejemplo para empaquetarlo en una imagen de contenedor. En esta sección, crearás una secuencia de comandos shell y un
Dockerfile
. UnDockerfile
es un documento de texto que contiene instrucciones para que Docker cree una imagen.Crear un repositorio de Docker en Artifact Registry
Compilar una imagen con Dockerfile
Cloud Build te permite crear una imagen Docker mediante un
Dockerfile
. No necesitas un archivo de configuración de Cloud Build independiente.Para compilar con un
Dockerfile
, sigue estos pasos:Una vez completada la compilación, verás un resultado similar al siguiente:
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
Acabas de crear una imagen Docker llamada
quickstart-image
con unDockerfile
y la has enviado a Artifact Registry.Compilar una imagen con un archivo de configuración de compilación
En esta sección, usarás un archivo de configuración de Cloud Build para crear la misma imagen Docker que antes. El archivo de configuración de compilación indica a Cloud Build que realice tareas según tus especificaciones.
Cuando se complete la compilación, verás un resultado similar al siguiente:
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
Acabas de compilar
quickstart-image
con el archivo de configuración de la compilación y has enviado la imagen a Artifact Registry.Ver detalles de la compilación
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.
Ahora has eliminado el repositorio que has creado en esta guía de inicio rápido.
Siguientes pasos
-