Definir variáveis de ambiente para configurar builds

É possível configurar variáveis de ambiente definidas durante a criação da imagem de contêiner.

Também é possível personalizar a imagem de contêiner estendendo as imagens de build e execução.

Builds locais

Para builds locais, você precisa ter a CLI Pack e o Docker instalados.

Antes de começar

  1. Instale o Docker Community Edition (CE) na estação de trabalho. O Docker é usado pela pack como um builder de imagens OCI.
  2. Instale a CLI Pack.
  3. Instale a ferramenta de controle de origem Git para buscar o aplicativo de amostra do GitHub.

Defina as variáveis de ambiente

Para definir variáveis de ambiente para builds locais, anexe a flag --env ao comando pack para cada variável.

É possível usar uma ou mais variáveis de ambiente compatíveis com o ambiente de execução.

pack build SERVICE_NAME \
    --env ENVIRONMENT_VARIABLE

Substitua:

  • SERVICE_NAME pelo nome do serviço do seu aplicativo ou função.
  • ENVIRONMENT_VARIABLE pela variável de ambiente que você quer definir durante o tempo de build.
Exemplo

Para definir a variável de ambiente GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app" na imagem de contêiner, execute este comando:

pack build my-app \
    --builder gcr.io/buildpacks/builder:v1 \
    --env GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app"
    --env MY-LOCAL-ENV-VARIABLE

Builds remotos

Para definir variáveis de ambiente para builds remotos, use o descritor de projeto project.toml. O descritor de projeto project.toml é usado pelo Cloud Build quando a imagem de contêiner é criada.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs Cloud Build and Artifact Registry.

    Ative as APIs

  5. Instale a CLI do Google Cloud.
  6. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  7. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  8. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  9. Ative as APIs Cloud Build and Artifact Registry.

    Ative as APIs

  10. Instale a CLI do Google Cloud.
  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Verifique se o projeto do Google Cloud tem acesso a um repositório de imagens de contêiner.

    Para configurar o acesso a um repositório do Docker no Artifact Registry:

    1. Crie um novo repositório do Docker no mesmo local do seu projeto do Google Cloud.
      gcloud artifacts repositories create REPO_NAME \
      --repository-format=docker \
      --location=REGION --description="DESCRIPTION"
      
      Substitua:
      • REPO_NAME pelo nome que você escolheu para o repositório do Docker.
      • REGION pelo local dentro ou mais próximo do local do seu projeto do Google Cloud.
      • DESCRIPTION com uma descrição da sua escolha.

      Por exemplo, para criar um repositório docker em us-west2 com a descrição "repositório do Docker", execute:

      gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \
      --location=us-west2 --description="Docker repository"
      
    2. Verifique se o repositório foi criado:
      gcloud artifacts repositories list
      

      Na lista, você verá o nome que escolheu para o repositório do Docker.

Opcional: fazer o download de um aplicativo de amostra

  1. Clone o repositório de amostra na máquina local:
    git clone https://github.com/GoogleCloudPlatform/buildpack-samples.git
  2. Altere para o diretório que contém o exemplo de código do aplicativo:

    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

Criar o aplicativo com variáveis de ambiente

  1. No diretório raiz do serviço, crie ou atualize o descritor de projeto project.toml para incluir a seção [[build.env]] e qualquer uma das variáveis de ambiente compatíveis:
    [[build.env]]
        name = "ENVIRONMENT_VARIABLE_NAME"
        value = "ENVIRONMENT_VARIABLE_VALUE"
    

    Substitua:

    • ENVIRONMENT_VARIABLE_NAME pelo nome de uma variável de ambiente compatível.
    • ENVIRONMENT_VARIABLE_VALUE pelo valor correspondente à variável de ambiente especificada.

    Exemplo

    [[build.env]]
        name = "GOOGLE_ENTRYPOINT"
        value = "gunicorn -p :8080 main:app"
    
  2. Use gcloud para enviar o código-fonte do aplicativo para o Cloud Build:
    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME

    Substitua:

    • LOCATION pelo nome da região do repositório de contêineres. Exemplo: us-west2-docker.pkg.dev
    • PROJECT_ID pelo ID do seu projeto do Google Cloud.
    • REPO_NAME pelo nome do repositório do Docker.
    • IMAGE_NAME pelo nome da imagem do contêiner.

    Exemplos: se você fez o download de um aplicativo de amostra, execute o comando correspondente:

    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
  3. Verifique se o aplicativo de amostra foi publicado em REPO_NAME:
    gcloud artifacts docker images list LOCATION-docker.pkg.dev/project-id/REPO_NAME

    Substitua:

    • LOCATION pelo nome da região do repositório de contêineres. Exemplo: us-west2-docker.pkg.dev
    • PROJECT_ID pelo ID do seu projeto do Google Cloud.
    • REPO_NAME pelo nome do repositório do Docker.