Usar um builder específico

Builders são imagens com controle de versão que contêm todos os componentes necessários para criar um contêiner executável. Cada builder usa uma distribuição específica do SO como a imagem base, como o Ubuntu 22, e oferece suporte a várias versões de linguagem de programação.

Talvez seja necessário personalizar a versão do builder se você precisar:

  • Uma dependência específica do SO disponível apenas em uma versão específica do builder.
  • Uma versão específica da linguagem de programação que está disponível apenas em uma versão específica do builder.

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 a amostra de aplicativo do GitHub.

Como especificar a versão do builder com pack

É possível anexar a sinalização --builder ao comando do pacote para especificar a versão do builder que você quer usar:

pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL

Substitua:

  • BUILDER_IMAGE_URL pelo URL do builder. Exemplo: gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME pelo nome escolhido para a imagem do aplicativo.

Para saber mais sobre o comando pack, consulte a documentação da CLI.

Como especificar a versão do builder com project.toml

Você pode usar um descritor de projeto (project.toml) para definir o builder ao criar com pack

  1. No diretório raiz do aplicativo, crie um arquivo chamado project.toml com a seguinte configuração:
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. Crie o aplicativo executando o comando "pack":
    pack build SERVICE_IMAGE_NAME

Substitua:

  • BUILDER_IMAGE_URL pelo URL do builder, por exemplo, gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME pelo nome escolhido para a imagem do aplicativo.

Builds remotos

É possível usar um builder específico com o Cloud Build anexando a sinalização --pack ao enviar seu projeto.

Antes de começar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    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.

Criar o aplicativo usando um builder específico

  1. Use gcloud para enviar o código-fonte do aplicativo para o Cloud Build:
    gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME

    Substitua:

    • BUILDER_IMAGE_URL pelo URL do builder. Exemplo: gcr.io/buildpacks/builder:google-22
    • 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.
    • SERVICE_IMAGE_NAME pelo nome da imagem de contêiner que você criou.

    Para saber mais sobre o comando submit, consulte a documentação do Cloud Build.

  2. 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.

Implantar a partir da origem com o Cloud Run

É possível usar um arquivo descritor de projeto de buildpacks, por exemplo, project.toml para definir o builder ao implantar da origem com o Cloud Run.

  1. Inicialize um arquivo project.toml na raiz do diretório do aplicativo e cole a seguinte configuração nele:
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. Implantar o aplicativo a partir da origem
    gcloud run deploy --source . SERVICE_IMAGE_NAME

Substitua:

  • BUILDER_IMAGE_URL pelo URL do builder. Exemplo: gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME pelo nome da imagem de contêiner que você criou.