Cloud Run acepta imágenes de contenedor compiladas con cualquier herramienta apta, siempre que respeten el contrato del contenedor.
En particular, tu código debe escuchar las solicitudes HTTP en el puerto que define la variable de entorno PORT
. Cloud Run inserta de manera automática esta variable de entorno PORT
en tu contenedor.
En esta página, se describen varias formas de compilar imágenes de contenedor:
- Usa un Dockerfile
- Usa Buildpacks
Compila mediante un Dockerfile
Antes de compilar las fuentes en una imagen de contenedor (“alojamiento en contenedores”) de forma local mediante Docker o Cloud Build, necesitas que haya un Dockerfile junto con tus fuentes. Las muestras de Hello World contienen aplicaciones de muestra y Dockerfiles en muchos lenguajes populares.
Si usas Dockerfiles, puedes usar cualquiera de los siguientes métodos para compilar:
- Compila mediante Cloud Build
- Compila de forma local mediante Docker
Realiza compilaciones mediante Cloud Build
Puedes compilar tu imagen en Google Cloud mediante Cloud Build:
Navega a la carpeta que contiene tus fuentes y el Dockerfile.
Ejecuta este comando:
gcloud builds submit --tag IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formatoREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Si deseas obtener sugerencias para mejorar el rendimiento de la compilación, consulta Acelera las compilaciones.
Compila de forma local y realiza el envío mediante Docker
Si tienes Docker instalado de manera local, puedes usar docker build
en lugar de Cloud Build o Buildpacks.
Para compilar tu imagen de contenedor mediante Docker, sigue estos pasos:
Navega a la carpeta que contiene tus fuentes y el
Dockerfile
.Ejecuta este comando:
docker build . --tag IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formatoREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Si aún no configuraste Docker para usar Google Cloud CLI a fin de autenticar solicitudes a Container Registry, hazlo ahora mediante el siguiente comando:
gcloud auth configure-docker
Debes hacer esto antes de enviar o extraer imágenes mediante Docker. Solo debes hacerlo una vez.
Envía la imagen del contenedor a un registro de contenedores compatible:
docker push IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formatoREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para excluir archivos locales de este proceso, sigue las instrucciones del archivo de configuración .dockerignore
.
Compila mediante los paquetes de compilación de Google Cloud
Paquetes de compilación de Google Cloud es un conjunto de Buildpacks compatible con CNCF que compilan código fuente en imágenes de contenedor diseñadas para ejecutarse en plataformas de contenedores de Google Cloud, incluido Cloud Run.
Para obtener una lista de los lenguajes admitidos, consulta la documentación de paquetes de compilación de Google Cloud.
Compila con los paquetes de compilación de Google Cloud mediante Cloud Build
Sigue estos pasos para compilar con los paquetes de compilación de Google Cloud:
Navega a la carpeta que contiene tus fuentes.
Ejecuta este comando:
gcloud builds submit --pack image=IMAGE_URL
Reemplaza IMAGE_URL por la URL de la imagen de contenedor, como
gcr.io/myproject/myservice
.Espera a que se complete la compilación.
Compila con los paquetes de compilación de Google Cloud mediante la línea de comandos de pack
Sigue estos pasos para compilar mediante el comando pack:
Si aún no lo hiciste, instala Docker.
Si aún no configuraste Docker para usar Google Cloud CLI a fin de autenticar solicitudes a Container Registry, hazlo ahora mediante el siguiente comando:
gcloud auth configure-docker
Debes hacer esto antes de enviar o extraer imágenes mediante Docker. Solo debes hacerlo una vez.
Si aún no lo hiciste, instala
pack
.Navega a la carpeta que contiene tus fuentes.
Ejecuta el siguiente comando para compilar y enviar a tu Container Registry:
pack build --publish IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formatoREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Espera a que
pack
finalice.
Para obtener más información, lee las instrucciones provistas en Compila una aplicación.
¿Qué sigue?
- Después de compilar el contenedor, puedes realizar pruebas locales antes de implementar en Cloud Run. Consulta Prueba un servicio de Cloud Run de forma local para obtener más información.
- A fin de obtener más información sobre el contrato que deben cumplir tus contenedores para implementarse en Cloud Run, consulta Contrato del contenedor.
- Para implementar en Cloud Run tus contenedores compilados, sigue los pasos de Implementa servicios.
- Para automatizar las compilaciones y las implementaciones de tus servicios de Cloud Run mediante activadores de compilación de Cloud, configura la implementación continua.
- Con el fin de realizar compilaciones de contenedores óptimas para la aplicación de Java, consulta Compila contenedores de Java con Jib.