Compila y envía una imagen de Docker con Cloud Build
Aprende a comenzar a usar Cloud Build compilando una imagen de Docker y enviándola a Artifact Registry. Artifact Registry proporciona una ubicación única para administrar imágenes de contenedores de Docker y paquetes privados.
Primero, compilarás la imagen con un Dockerfile, que es el archivo de configuración de Docker y, luego, compilarás la misma imagen con el archivo de configuración de Cloud Build.
Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI 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.
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Asegúrate de tener los siguientes roles en el proyecto: Administrador de Artifact Registry, editor de Cloud Build, visualizador de registros, usuario de cuenta de servicio, administrador de Service Usage, visualizador de buckets de Storage y creador de objetos de Storage
Verifica los roles
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
-
En la columna Principal, busca todas las filas que te identifiquen a ti o a un grupo en el que se te incluya. Para saber en qué grupos estás incluido, comunícate con tu administrador.
- Para todas las filas en las que se te especifique o se te incluya, verifica la columna Rol para ver si la lista de roles incluye los roles necesarios.
Otorga los roles
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.
- Haz clic en Seleccionar un rol y, luego, busca el rol.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- Haz clic en Guardar.
-
Prepara los archivos de código fuente para compilarlos
Necesitarás un código fuente de muestra para empaquetar en una imagen de contenedor. En esta sección, crearás una secuencia de comandos de shell y un Dockerfile. Un Dockerfile es un documento de texto que contiene instrucciones para que Docker compile una imagen.
Abre una ventana de terminal.
Crea un directorio nuevo llamado
quickstart-dockery navega hasta él:mkdir quickstart-docker cd quickstart-dockerCrea un archivo llamado
quickstart.shcon el contenido siguiente:Crea un archivo llamado
Dockerfilecon el contenido siguiente:En la ventana de la terminal, aplica el siguiente comando para permitir que
quickstart.shse pueda ejecutar:chmod +x quickstart.sh
Crea un repositorio de Docker en Artifact Registry
Usa el comando
gcloud artifacts repositories createpara crear un repositorio de Docker llamadoquickstart-docker-repoen la ubicaciónus-west2con la descripción “Docker repository”:gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"Verifica que se haya creado el repositorio:
gcloud artifacts repositories listLa lista de repositorios que se muestra debe incluir
quickstart-docker-repo.Artifact Registry usa una convención de nombres para identificar repositorios e imágenes. Por ejemplo, cuando interactúas con imágenes de Docker almacenadas en Artifact Registry en la región
us-west2, usasus-west2-docker.pkg.devcomo el nombre de host del registro en tus comandos.
Compila una imagen con un Dockerfile
Usa el comando gcloud builds submit para compilar una imagen de Docker con un Dockerfile. No se necesita un archivo de configuración de Cloud Build diferente.
Para obtener el ID del proyecto Google Cloud , ejecuta el siguiente comando:
gcloud config get-value projectEjecuta el siguiente comando desde el directorio que contiene
quickstart.shyDockerfile:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1Una vez que finalice la compilación, el resultado debería ser 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 compilar una imagen de Docker llamada quickstart-image mediante un Dockerfile
y enviaste la imagen a Artifact Registry.
Compila una imagen mediante un archivo de configuración de compilación
En esta sección, usarás un archivo de configuración de Cloud Build para compilar la misma imagen de Docker que compilaste en los pasos anteriores. El archivo de configuración de compilación indica a Cloud Build que realice tareas según tus especificaciones.
En el mismo directorio que contiene
quickstart.shyDockerfile, crea un archivo llamadocloudbuild.yamlcon el siguiente contenido. Este archivo es tu archivo de configuración de compilación. A la hora de la compilación, Cloud Build reemplaza de forma automática$PROJECT_IDpor tu ID del proyecto.Comienza la compilación ejecutando el siguiente comando:
gcloud builds submit --region=us-west2 --config cloudbuild.yamlUna vez que finalice la compilación, el resultado debería ser 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 mediante el archivo de configuración de compilación y enviaste la imagen a Artifact Registry.
Ver detalles de compilación
Abre la página de Cloud Build en la Google Cloud consola.
Si es necesario, selecciona tu proyecto y haz clic en Abrir.
Verás la página Historial de compilación:
Si es necesario, selecciona
us-west2en el menú desplegable Región para ver las compilaciones de esa región.Aparecerán dos compilaciones en la lista, una para cada una de las compilaciones que ejecutaste en esta guía de inicio rápido.
Haz clic en una de las compilaciones.
Verás la página Detalles de compilación:
Para ver los artefactos de la compilación, en Resumen de la compilación, haz clic en Artefactos de compilación.
Debería ver un resultado similar al siguiente:
Puedes descargar tu registro de compilación y ver los detalles de la imagen en Artifact Registry desde esta página.
Realiza una limpieza
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.
Abre la página de Artifact Registry en la consola de Google Cloud .
Selecciona tu proyecto y haz clic en Open.
Selecciona quickstart-docker-repo.
Haz clic en Borrar.
Con estos pasos, borraste las imágenes que creaste como parte de esta guía de inicio rápido.
¿Qué sigue?
- Aprende a ejecutar una imagen de Docker.
- Aprende a crear un archivo de configuración de compilación básico.
- Aprende a realizar implementaciones con Cloud Build.
- Aprende a compilar aplicaciones de Node.js.
- Aprende a compilar aplicaciones de Java.
- Obtén más información para compilar aplicaciones de Go.