Cómo crear Cloud Run con una app en Java


Cómo desplegar una aplicación Java en Cloud Run (Guía paso a paso con Spring Boot y Docker)

Cómo crear Cloud Run con una app en Java
oscar Escrito por oscar 25 March 2026 7 0

Crear aplicaciones escalables sin gestionar infraestructura es uno de los objetivos principales del desarrollo moderno. Con Cloud Run de Google Cloud Platform, puedes desplegar aplicaciones en contenedores de forma completamente serverless, pagando solo por el uso real.

En este tutorial aprenderás paso a paso cómo crear y desplegar una aplicación en Java utilizando Spring Boot, empaquetarla con Docker y publicarla en Cloud Run. Además, entenderás cómo funciona el flujo completo desde la construcción de la imagen en Artifact Registry hasta la exposición de un endpoint HTTP accesible desde cualquier lugar.

Este enfoque es ideal para desarrolladores backend que buscan una solución moderna, escalable y alineada con arquitecturas basadas en microservicios y contenedores.

Crear proyecto en GCP

Ve a: https://console.cloud.google.com

Activa una cuenta facturación google cloud y crea un proyecto nuevo en GCP

Activa APIs:

Adicional, debemos tener instalado en nuestros equipos de computo la consola CLI de GCP

Crear app Java simple

Para crear el proyecto en java tenemos dos opciones:

De momento solo necesitamos que al ejecutar la aplicación y accedamos a la web por medio a la url, si esta iniciando y no conoce mucho de java, recomiendo seguir los pasos con el proyecto de spring boot

Estructura del proyecto

cloudrun-java-demo/
 ├── src/main/java/com/example/demo/
 │    └── DemoApplication.java
 ├── pom.xml
 └── Dockerfile

Procedemos a crear el proyecto con https://start.spring.io/  mas detalle puede guiarse en Crear un proyecto Spring boot.

Generamos y descargamos el archivo y lo descomprimimos en un directorio.

Crear HomeController

Para este ejemplo crearemos el archivo HomeController.java en donde colocaremos el siguiente código:

package com.oscar.cloudrun_java_demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {

  @GetMapping("/")
  public String home() {
    return "Hola desde Cloud Run 🚀";
  }
}

Estamos mostrando un mensaje basico al ingresar a la url inicial.

Compilar proyecto

Revisa comandos básicos de maven para mas información, de momento ejecuta:

mvn clean package

Genera: target/cloudrun-java-demo-0.0.1-SNAPSHOT.jar

Nota: el nombre del .jar se ha generado e la configuración del pom.xml en la etiqueta artifactId version

Crear Dockerfile

Procedemos a crear el dockerfile en donde cargaremos la aplicación Java creada para empaquetara en una imagen y que se ejecute en un contenedor desde el Artifact Registry

Procedemos a crear el Dockerfile y colocamos el siguiente código:

FROM eclipse-temurin:17-jdk-alpine

WORKDIR /app

COPY target/cloudrun-java-demo-0.0.1-SNAPSHOT.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app/app.jar"]

El dockerfile anterior realiza lo siguiente:

  1. Definimos como imagen base un Java 17 JDK
  2. Indicamos el directorio de trabajo como /app
  3. Copiamos el jar generado desde el origine que es el directorio a la imagen, renombrando como app.jar
  4. Exponemos el puerto 8080
  5. Ejecutamos el jar con el comando Java

Crear Artifact Registry

Procedemos a crear el Artifact Directory, para poder subir la imagen Docker creada en Crear Dockerfile

Vamos a crear un repositorio, para ello ingresamos al recurso Artifact Registry donde vamos a segir los siguientes pasos:

  1. Indicamos el nombre del repositorio
  2. Damos el formato, en este caso sera el de Docker
  3. Seleccionamos la región de preferencia
  4. Damos una descripción al repositorio
Crear registro de Artifact Registry
Crear registro de Artifact Registry

En el listado de repositorios procedemos a ingresar al detalle del repositorio en donde vamos a encontrarlo vacio de momento.

Detalle repositorio Docker Creado
Detalle repositorio Docker Creado

Vamos a la consola de Cloud Run en donde realizamos la siguiente configuración:

gcloud auth configure-docker us-central1-docker.pkg.dev

El comando anterior configura la autenticación entre Docker y el registro de artefactos de Google Cloud, específicamente Artifact Registry.

Modifica el archivo de configuración de Docker

After update, the following will be written to your Docker config file located at [C:\Users\ofernandezigeoerp\.docker\config.json]:
 {
  "credHelpers": {
    "gcr.io": "gcloud",
    "us.gcr.io": "gcloud",
    "eu.gcr.io": "gcloud",
    "asia.gcr.io": "gcloud",
    "staging-k8s.gcr.io": "gcloud",
    "marketplace.gcr.io": "gcloud"
  }
}

Do you want to continue (Y/n)?

Docker configuration file updated.

Generar imagen Docker

Procedemos a generar la imagen del proyecto 

docker build -t us-central1-docker.pkg.dev/steadfast-sign-268019/cloud-run-repo/demo .

Luego ejecutamos la imagen

docker run --rm --name=test -p 8085:8080 us-central1-docker.pkg.dev/steadfast-sign-268019/cloud-run-repo/demo:latest

Realizamos una prueba en http://localhost:8085/ y verificamos que se muestre correctamente el mensaje

Prueba imagen docker
Prueba imagen docker

Subir imagen al repositorio

Para subir la imagen al repositorio, debemos hacer lo siguiente:

docker push us-central1-docker.pkg.dev/steadfast-sign-268019/cloud-run-repo/demo

Respuesta:

Using default tag: latest
The push refers to repository [us-central1-docker.pkg.dev/steadfast-sign-268019/cloud-run-repo/demo]
63f27fb7be93: Pushed
6a9c7a632320: Pushed
f7409d4c66cc: Pushed
08e98c779fb9: Pushed
0a828e8088fe: Pushed
344ae0b6479e: Pushed
989e799e6349: Pushed
latest: digest: sha256:56ca271764655b8336167ec8046ee3910078a58b256d530793840e14b2ed8d5c size: 1786
Imagen en respositorio Artifact Registry
Imagen en respositorio Artifact Registry

Deploy en Cloud Run

Deploy desde la Consola Web

Realizamos el logia en la consola y procedemos a realizar los siguientes pasos:

  1. Buscamos el recurso de la Cloud Run
  2. En el menú, ingresamos los servicios
  3. Procedmeos a crear un nuevo servicio
  4. Seleccionamos implementar una revisión desde una imagen de contenedor
  5. Damos en buscar la imagen en Artifact Registry
  6. Seleccionamos el contenedor creado y subido en la sección Crear Artifact Registry
Crear nueva Cloud Run
Crear nueva Cloud Run

Luego realizamos la configuración básica para la Cloud Run como se muestra en la siguiente imagen.

Configuración de la Cloud Run
Configuración de la Cloud Run

Damos en crear, en donde empresaria a implementar la Cloud Run con el contenedor seleccionado

Deploy de Cloud Run  desde consola Web
Deploy de Cloud Run  desde consola Web

Deploy desde comandos por CLI de GCP

Podemos desplegar la Cloud Run desde la consola CLI de GCP usando el siguiente comando:

gcloud run deploy demo-service --image us-central1-docker.pkg.dev/steadfast-sign-000000/cloud-run-repo/demo --platform managed --region us-central1 --allow-unauthenticated

El comando anterior realiza lo siguiente:

Respuesta:

Deploying container to Cloud Run service [demo-service] in project [steadfast-sign-268019] region [us-central1]
OK Deploying new service... Done.
  OK Creating Revision...
  OK Routing traffic...
  OK Setting IAM Policy...
Done.
Service [demo-service] revision [demo-service-00001-6db] has been deployed and is serving 100 percent of traffic.
Service URL: https://demo-service-000000.us-central1.run.app

Listado de la Cloud Run

Desde la consola web de GCP

Paso a paso

  1. Ve a: https://console.cloud.google.com
  2. Asegúrate de tener seleccionado tu proyecto (arriba a la izquierda)
  3. En el menú lateral:
    • Ir a Serverless
    • Click en Cloud Run

👉 Ruta directa: Menu → Serverless → Cloud Run

Listado de Cloud Run
Listado de Cloud Run

Desde CLI (gcloud)

Listar todos los servicios

gcloud run services list

Listar por región (recomendado)

gcloud run services list --region=us-central1

Cloud Run es regional, así que esto evita confusión.

Ejemplo de salida

SERVICE        REGION        URL
demo-service   us-central1   https://demo-service-xxxx.a.run.app

Probar Cloud Run

Rodemos a probar la Cloud Run generada de nuestro proyecto, ingresando a la URL que se ha generado tras finalizar el despliegue y ejecución del contenedor:

Esta la podemos obtener viendo el detalle desde la consola web o desde el comando de la CLI.

gcloud run services describe demo-service --region=us-central1

👉 Aquí obtienes:

Ingresamos a la URL que se ha generado, ejemplo puede ser esta: https://demo-service-562360000006.us-central1.run.app/

Prueba final en navegador Web
Prueba final en navegador Web

Eliminar Cloud Run y el Repositorio Artifact Registry

Finalizado el ejercicio, procedemos a eliminar lo creado, para no generar cobros adicionales. A continuación, tienes los comandos exactos y seguros para eliminar tanto el servicio en Cloud Run como el repositorio en Artifact Registry.

Eliminar servicio de Cloud Run

Podemos eliminar la cloud run de la siguiente forma:

Parámetros

gcloud run services delete demo-service --region=us-central1 --platform=managed

Respuesta: 

Service [demo-service] will be deleted.

Do you want to continue (Y/n)?  y

Deleting [demo-service]...done.
Deleted service [demo-service].

Podemos verificar el nombre y saber si se elimino la Cloud Run con:

gcloud run services list

Eliminar imagen (opcional pero recomendado)

Primero lista las imágenes:

gcloud artifacts docker images list us-central1-docker.pkg.dev/TU_PROJECT_ID/cloud-run-repo

Eliminar una imagen en especifico:

gcloud artifacts docker images delete us-central1-docker.pkg.dev/TU_PROJECT_ID/cloud-run-repo/demo  --delete-tags --quiet

Eliminar repositorio completo (Artifact Registry)

gcloud artifacts repositories delete cloud-run-repo --location=us-central1

Orden recomendado (importante)

  1. Eliminar servicio Cloud Run
  2. Eliminar imágenes
  3. Eliminar repositorio

👉 Evita errores de dependencias o residuos.


Comentario

Debe aceptar antes de enviar