Puedes configurar las variables de entorno que se establecen durante la compilación de la imagen de contenedor.
También puedes personalizar la imagen de contenedor mediante la extensión de la compilación y ejecución de imágenes.
Compilaciones locales
Para las compilaciones locales, debes tener instaladas la CLI de Pack y Docker.
Antes de comenzar
- Instala la edición de la comunidad de Docker (CE) en tu estación de trabajo.
pack
usa Docker como un compilador de imágenes de OCI. - Instala la CLI de Pack.
- Instala la herramienta de control de fuente Git para obtener la aplicación de ejemplo de GitHub.
Configura variables de entorno
Para establecer variables de entorno en compilaciones locales, agrega la marca --env
al comando pack
en cada variable de entorno.
Puedes usar una o más de las variables de entorno que admite tu entorno de ejecución.
pack build SERVICE_NAME \
--env ENVIRONMENT_VARIABLE
Reemplaza lo siguiente:
SERVICE_NAME
por el nombre del servicio de tu aplicación o función.ENVIRONMENT_VARIABLE
por la variable de entorno que deseas establecer durante el tiempo de compilación.
- Ejemplo
Para establecer la variable de entorno
GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app"
en la imagen de contenedor, ejecuta el siguiente comando:pack build my-app \ --builder gcr.io/buildpacks/builder:v1 \ --env GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app" --env MY-LOCAL-ENV-VARIABLE
Compilaciones remotas
Para configurar variables de entorno para compilaciones remotas, usa el descriptor de proyecto project.toml
.
Cloud Build usa el descriptor del proyecto project.toml
cuando se compila la imagen de contenedor.
Antes de comenzar
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Asegúrate de que tu proyecto de Google Cloud tenga acceso a un repositorio de imágenes de contenedor.
Para configurar el acceso a un repositorio de Docker en Artifact Registry, haz lo siguiente:
- Crea un nuevo repositorio de Docker en la misma ubicación de tu proyecto de Google Cloud.
Reemplaza lo siguiente:gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
REPO_NAME
por el nombre que elijas para el repositorio de Docker.REGION
por la ubicación en la ubicación de tu proyecto de Google Cloud o más cercana a ella.DESCRIPTION
por una descripción que elijas.
Por ejemplo, para crear un repositorio de
docker
enus-west2
con la descripción “Repositorio de Docker”, ejecuta lo siguiente:gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
- Verifica que se haya creado el repositorio:
gcloud artifacts repositories list
Deberías ver el nombre que elijas para tu repositorio de Docker en la lista.
- Crea un nuevo repositorio de Docker en la misma ubicación de tu proyecto de Google Cloud.
Opcional: Descarga una aplicación de ejemplo
- Clona el repositorio de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/buildpack-samples.git
- Dirígete al directorio que contiene el código de muestra de la aplicación:
Go
cd buildpack-samples/sample-go
Java
cd buildpack-samples/sample-java-gradle
Node.js
cd buildpack-samples/sample-node
PHP
cd buildpack-samples/sample-php
Python
cd buildpack-samples/sample-python
Ruby
cd buildpack-samples/sample-ruby
.NET
cd buildpack-samples/sample-dotnet
Compila la aplicación con variables de entorno
- En el directorio raíz de tu servicio, crea o actualiza el descriptor de proyectos
project.toml
para incluir la sección[[build.env]]
y cualquiera de las variables de entorno compatible:[[build.env]] name = "ENVIRONMENT_VARIABLE_NAME" value = "ENVIRONMENT_VARIABLE_VALUE"
Reemplaza lo siguiente:
ENVIRONMENT_VARIABLE_NAME
por el nombre de una variable de entorno compatible.ENVIRONMENT_VARIABLE_VALUE
por el valor correspondiente para la variable de entorno especificada.
Ejemplo
[[build.env]] name = "GOOGLE_ENTRYPOINT" value = "gunicorn -p :8080 main:app"
- Usa
gcloud
para enviar el código fuente de la aplicación a Cloud Build:gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME
Reemplaza lo siguiente:
LOCATION
por el nombre de región de tu repositorio de contenedores. Ejemplo:us-west2-docker.pkg.dev
PROJECT_ID
por el ID del proyecto de Google Cloud.REPO_NAME
por el nombre de tu repositorio de Docker.IMAGE_NAME
por el nombre de la imagen de contenedor
Ejemplos: Si descargaste una aplicación de ejemplo, ejecuta el comando correspondiente:
Go
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-go
Java
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-java-gradle
Node.js
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-node
PHP
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-php
Python
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-python
Ruby
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-ruby
.NET
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-dotnet
-
Verifica que la aplicación de muestra se haya publicado de forma correcta en
REPO_NAME
:gcloud artifacts docker images list LOCATION-docker.pkg.dev/project-id/REPO_NAME
Reemplaza lo siguiente:
LOCATION
por el nombre de la región de tu repositorio de contenedores. Ejemplo:us-west2-docker.pkg.dev
PROJECT_ID
por el ID del proyecto de Google Cloud.REPO_NAME
por el nombre de tu repositorio de Docker.