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
- 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.
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 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. -
Install the Google Cloud CLI.
-
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
(
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. -
Install the Google Cloud CLI.
-
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 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:
- 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 .
- 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.
- 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
BUILDER_IMAGE_URLpelo URL do builder. Exemplo:gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAMEpelo nome da imagem de contêiner que você criou.
Criar o aplicativo usando um builder específico
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.
Substitua: