Use um criador específico

Os criadores são imagens com versões que contêm todos os componentes necessários para criar um contentor executável. Cada criador usa uma distribuição de SO específica como imagem base, como o Ubuntu 22, e suporta várias versões de linguagem de programação.

Pode ter de personalizar a versão do criador se precisar de:

  • Uma dependência específica do SO que só está disponível numa versão específica do criador.
  • Uma versão específica da linguagem de programação que só está disponível numa versão específica do criador.

Compilações locais

Para compilações locais, tem de ter o CLI Pack e o Docker instalados.

Antes de começar

  1. Instale o Docker Community Edition (CE) na sua estação de trabalho. O Docker é usado pelo pack como um criador de imagens OCI.
  2. Instale a CLI Pack.
  3. Instale a ferramenta Git source control para obter a aplicação de exemplo do GitHub.

Especificar a versão do criador com pack

Pode anexar a flag --builder ao comando pack para especificar a versão do criador que quer usar:

pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL

Substituição:

  • BUILDER_IMAGE_URL com o URL do criador. Exemplo: gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME com o nome que escolher para a imagem da aplicação.

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

Especificar a versão do criador com project.toml

Pode usar um descritor de projeto (project.toml) do buildpacks para definir o criador quando cria com pack

  1. No diretório raiz da aplicação, crie um ficheiro denominado project.toml com a seguinte configuração:
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. Crie a sua aplicação executando o comando `pack`:
    pack build SERVICE_IMAGE_NAME

Substituição:

  • BUILDER_IMAGE_URL com o URL do criador, por exemplo, gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME com o nome que escolher para a imagem da aplicação.

Compilações remotas

Pode usar um criador específico com o Cloud Build anexando a flag --pack quando enviar o 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build and Artifact Registry APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build and Artifact Registry APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Certifique-se de que o seu Google Cloud projeto tem acesso a um repositório de imagens de contentores.

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

    1. Crie um novo repositório do Docker na mesma localização do seu Google Cloud projeto.
      gcloud artifacts repositories create REPO_NAME \
      --repository-format=docker \
      --location=REGION --description="DESCRIPTION"
      Substituir:
      • REPO_NAME com o nome que escolher para o seu repositório do Docker.
      • REGION com a localização em ou mais próxima da localização do seu Google Cloud projeto.
      • DESCRIPTION com uma descrição à 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

      Deve ver o nome que escolheu para o seu repositório do Docker na lista.

  15. Crie a aplicação com um criador específico

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

      Substituição:

      • BUILDER_IMAGE_URL com o URL do criador. Exemplo: gcr.io/buildpacks/builder:google-22
      • LOCATION com o nome da região do seu repositório de contentores. Exemplo: us-west2-docker.pkg.dev
      • PROJECT_ID com o ID do seu Google Cloud projeto.
      • REPO_NAME com o nome do seu repositório do Docker.
      • SERVICE_IMAGE_NAME com o nome da imagem de contentor que criou.

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

    2. Confirme se a aplicação de exemplo foi publicada com êxito em REPO_NAME:
      gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME

      Substituição:

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

    Implemente a partir da origem com o Cloud Run

    Pode usar um ficheiro descritor de projeto de buildpacks, por exemplo, project.toml, para definir o criador quando implementar a partir da origem com o Cloud Run

    1. Inicialize um ficheiro project.toml no diretório raiz da sua aplicação e cole a seguinte configuração no mesmo:
      [build]
      builder = "BUILDER_IMAGE_URL"
    2. Implemente a sua aplicação a partir da origem
      gcloud run deploy --source . SERVICE_IMAGE_NAME

    Substituição:

    • BUILDER_IMAGE_URL com o URL do criador. Exemplo: gcr.io/buildpacks/builder:google-22
    • SERVICE_IMAGE_NAME com o nome da imagem de contentor que criou.