Durante el desarrollo, puedes ejecutar y probar la imagen de contenedor de manera local, antes de la implementación. Puedes usar Cloud Code o Docker instalado de manera local para ejecutar y probar a nivel local, incluida la ejecución local con acceso a los servicios de Google Cloud.
Ejecuta en un emulador de Knative serving
El complemento de Cloud Code para VS Code y los IDE de JetBrains te permite ejecutar y depurar de forma local la imagen de contenedor en un emulador de Cloud Run en tu IDE. El emulador te permite configurar un entorno que represente el servicio que se ejecuta en Knative serving.
Puedes configurar propiedades como la CPU y la asignación de memoria, especificar variables de entorno y establecer conexiones de base de datos de Cloud SQL.
- Instala Cloud Code para VS Code o un IDE de JetBrains.
- Sigue las instrucciones para el desarrollo y la depuración locales dentro del IDE.
- VS Code: Desarrollo y depuración locales
- IntelliJ: Desarrollo y depuración locales
Realiza una ejecución de manera local mediante Docker
Para probar la imagen de contenedor de forma local mediante Docker, haz lo siguiente:
Usa el comando de Docker:
PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
gcr.io/cloudrun/hello
.La variable de entorno
PORT
especifica el puerto que usará la aplicación para escuchar solicitudes HTTP o HTTPS. Este es un requisito del contrato del entorno de ejecución del contenedor. En este ejemplo, usamos el puerto 8080.Abre http://localhost:9090 en el navegador.
Si es la primera vez que trabajas con contenedores, te recomendamos revisar la guía Comienza a usar Docker. Para obtener más información sobre los comandos de Docker, consulta la documentación de Docker.
Ejecuta de manera local mediante Docker con acceso a los servicios de Google Cloud
Si usas bibliotecas cliente de Google Cloud para integrar tus aplicaciones en los servicios de Google Cloud y aún no has protegido esos servicios a fin de controlar el acceso externo, puedes configurar tu contenedor local para que se autentique con los servicios de Google Cloud mediante las credenciales predeterminadas de la aplicación.
Para ejecutar de forma local, sigue estos pasos:
Consulta Comienza a usar la autenticación para obtener instrucciones sobre cómo generar, recuperar y configurar las credenciales de la cuenta de servicio.
Las siguientes marcas de ejecución de Docker incorporan las credenciales y la configuración del sistema local en el contenedor local:
- Usa la marca
--volume
(-v
) para incorporar el archivo de credenciales en el contenedor (se supone que ya configuraste la variable de entornoGOOGLE_APPLICATION_CREDENTIALS
en tu máquina):-v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
- Usa la marca
--environment
(-e
) para establecer la variableGOOGLE_APPLICATION_CREDENTIALS
dentro del contenedor:-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
- Usa la marca
De manera opcional, usa este comando
run
de Docker completamente configurado:PORT=8080 && docker run \ -p 9090:${PORT} \ -e PORT=${PORT} \ -e K_SERVICE=dev \ -e K_CONFIGURATION=dev \ -e K_REVISION=dev-00001 \ -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \ -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \ IMAGE_URL
Ten en cuenta que la ruta
/tmp/keys/FILE_NAME.json
que se muestra en el ejemplo anterior es una ubicación razonable para colocar las credenciales dentro del contenedor.Sin embargo, otras ubicaciones del directorio también funcionarán. El requisito fundamental es que la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
debe coincidir con la ubicación de activación de vinculación dentro del contenedor.Además, ten en cuenta que, con algunos servicios de Google Cloud, puedes usar una configuración alternativa para aislar la solución de problemas locales de los datos y el rendimiento de producción.
Próximos pasos
Para aprender a implementar los contenedores compilados, consulta Implementa servicios.