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
- Instale o Docker Community Edition (CE) na
estação de trabalho. O Docker é usado pela
packcomo um builder de imagens OCI. - Instale a CLI Pack.
- 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_URLpelo URL do builder. Exemplo:gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAMEpelo 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
- No diretório raiz do aplicativo, crie um arquivo chamado
project.tomlcom a seguinte configuração:[build] builder = "BUILDER_IMAGE_URL"
-
Crie o aplicativo executando o comando "pack":
pack build SERVICE_IMAGE_NAME
Substitua:
BUILDER_IMAGE_URL: o URL do builder, por exemplo,gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAME: o nome que você escolhe para a imagem do aplicativo.
Builds remotos
É possível usar um builder específico com o Cloud Build anexando a flag --pack
ao enviar seu projeto.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, 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.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init - Verifique se o seu Google Cloud projeto tem acesso a um repositório de imagens de contêiner.
Para configurar o acesso a um repositório do Docker no Artifact Registry:
- Crie um novo repositório do Docker no mesmo local do seu projeto Google Cloud .
Substitua:gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
REPO_NAMEpelo nome que você escolheu para o repositório do Docker.REGIONpelo local dentro ou mais próximo do local do seu projeto do Google Cloud .DESCRIPTIONcom uma descrição da sua escolha.
Por exemplo, para criar um repositório
dockeremus-west2com a descrição "repositório do Docker", execute:gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
- 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.
- Crie um novo repositório do Docker no mesmo local do seu projeto Google Cloud .
Criar o aplicativo usando um builder específico
- Use
gcloudpara 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_URLpelo URL do builder. Exemplo:gcr.io/buildpacks/builder:google-24LOCATIONpelo nome da região do repositório de contêineres. Exemplo:us-west2-docker.pkg.devPROJECT_IDcom o ID do seu projeto do Google Cloud .REPO_NAMEpelo nome do repositório do Docker.SERVICE_IMAGE_NAMEpelo nome da imagem de contêiner que você criou.
Para saber mais sobre o comando
submit, consulte a documentação do Cloud Build. -
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:
LOCATIONpelo nome da região do repositório de contêineres. Exemplo:us-west2-docker.pkg.devPROJECT_IDcom o ID do seu projeto do Google Cloud .REPO_NAMEpelo 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, como project.toml, para definir o builder ao implantar da origem com o Cloud Run.
- Inicialize um arquivo
project.tomlna raiz do diretório do aplicativo e cole a seguinte configuração nele:[build] builder = "BUILDER_IMAGE_URL"
-
Implantar o aplicativo a partir da origem
gcloud run deploy --source . SERVICE_IMAGE_NAME
Substitua:
BUILDER_IMAGE_URLpelo URL do builder. Exemplo:gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAMEpelo nome da imagem de contêiner que você criou.