Planejando sua construção

Antes de começar a construir imagens com o IBM Cloud® Code Engine, aprenda sobre as diferentes opções que você tem para a sua construção.

Uma construção, ou construção de imagem, é um mecanismo que você pode usar para criar uma imagem de contêiner por meio do seu código-fonte. O Code Engine suporta a construção por meio de um Dockerfile e Cloud Native Buildpacks.

Se você tiver uma compilação de imagem que exista em um registro de contêineres e a imagem tiver sido compilada com um processador não baseado em Intel, o site Code Engine não poderá executar sua imagem de contêiner. Code Engine usa processamento baseado em Intel. Você pode criar sua própria imagem se usar o processamento Intel (processador x86 ). Você também pode optar por deixar que o Code Engine cuide do processo de criação para você.

O Code Engine fornece métodos de definição de recurso customizado (CRD). Para obter mais informações, consulte Métodos CRD de origem para imagem.

Prepare seu local de origem

Para conceder ao Code Engine acesso ao seu código-fonte, é necessário disponibilizá-lo em um repositório Git ou em um local acessível em sua estação de trabalho local.

Repositório Git
Armazene seu código em um repositório Git, por exemplo, em GitHub ou GitLab. Seu código pode estar no nível superior do seu repositório ou em um subdiretório. Se o seu repositório de origem não for público, o acesso ao Code Engine deverá ser incluído.
Workstation local
Armazene seu código em sua estação de trabalho local. Ao enviar uma construção que extrai código de um diretório local, seu código-fonte é empacotado em um archive e carregado para a sua instância do IBM Cloud Container Registry. A imagem de origem é criada no mesmo espaço de nomes da sua imagem de construção. Note que você só pode destinar o IBM Cloud Container Registry para suas construções locais. É possível optar por ignorar certos padrões de arquivo de dentro do seu código-fonte usando o arquivo .ceignore, que se comporta de forma semelhante a um arquivo .gitignore. Por exemplo, entradas para um arquivo .ceignore para um aplicativo node.js podem incluir node_modules e .npm. Para obter mais exemplos de padrões de arquivos a serem ignorados, consulte o repositório GitHub.gitignore.

Escolha uma estratégia de construção

O Code Engine pode construir sua imagem de contêiner usando uma das estratégias a seguir.

Dockerfile

Compilação de Dockerfile que usa a ferramenta BuildKit ferramenta. Para usar essa estratégia, inclua um Dockerfile em seu repositório de origem. Esse Dockerfile descreve as etapas necessárias para construir uma imagem de contêiner do seu repositório de origem. O Dockerfile pode conter etapas que copiam arquivos estáticos de suas origens para o contêiner a ser hospedado por um serviço da web, por exemplo. Ele pode compilar o código-fonte gravado na linguagem de sua preferência e incluir o binário resultante em sua imagem de contêiner. Para obter mais informações sobre as construções do Dockerfile, consulte Gravando um Dockerfile para o Code Engine.

Quando você extrair uma imagem do Docker Hub para usar com aplicativos ou trabalhos em Code Engine, esteja ciente dos limites de taxa do Docker para usuários de planos gratuitos (não autenticados). É possível que ocorram limites de extração se você receber um erro 429, o que indica que você atingiu seu limite de taxa de extração. Para aumentar os limites de taxa, você pode atualizar sua conta para uma assinatura Docker Pro ou Team.

Cloud Native Buildpacks

Cloud Native Buildpack que usa o Paketo para inspecionar seu repositório de código-fonte e detectar em qual ambiente de tempo de execução seu código se baseia e como uma imagem de contêiner é criada a partir de seus códigos-fonte. Os buildpacks fazem suposições sobre a estrutura de diretórios de seus repositórios de origem. Para obter mais informações sobre como estruturar seu repositório de origem corretamente, consulte as amostras fornecidas para seu tempo de execução.

Arquivos de amostra de tempo de execução
Tempo de execução Versão Amostras
Acessar 1.24.12 Ir para amostras.
Java 21.0.10 Java amostras.
Node.js 24.14.0 Node.js amostras.
PHP 8.1.28 Amostras de PHP.
Python 3.11.14 Python amostras.
Ruby 3.1.7 Ruby amostras.
.NET Core 9.0.311 (.NET Core SDK),
9.0.13 (.NET Core Runtime)
.NET Core amostras.

As imagens criadas usando Cloud Native Buildpacks não usam mais o registro de data e hora neutro de Jan, 1st 1980 como registro de data e hora de criação da imagem. O carimbo de data/hora da fonte de entrada é usado como o carimbo de data/hora de criação da imagem; por exemplo, o carimbo de data/hora do commit Git do commit que foi usado para sua compilação.

A versão de um tempo de execução específico para um pacote de compilação do Paketo pode diferir entre as regiões por um breve período sempre que uma versão atualizada de um pacote de compilação for implementada nas várias regiões do IBM Cloud.

Determine o tamanho da construção

Code Engine classifica os builds nos tamanhos small, medium, large, xlarge e xxlarge. O tamanho da construção define como os núcleos da CPU, a memória e o espaço em disco são designados à construção. Uma construção menor é mais barata, mas tipicamente também mais lenta porque usa menos núcleos de CPU. Além disso, os requisitos de memória e disco de sua construção podem fazer com que a construção falhe com um tamanho menor.

Valores de tamanho de construção.
Tamanho Dockerfile Buildpacks
small
  • CPU 0,5
  • Memória 2 GB
  • Disco 2 GB
  • CPU 0,5
  • Memória 2 GB
  • Disco 2 GB
medium
  • CPU 1
  • Memória 4 GB
  • Disco 4 GB
  • CPU 1
  • Memória 4 GB
  • Disco 4 GB
large
  • CPU 2
  • Memória 8 GB
  • Disco 8 GB
  • CPU 2
  • Memória 8 GB
  • Disco 8 GB
xlarge
  • CPU 4
  • Memória 16 GB
  • Disco 16 GB
  • CPU 4
  • Memória 16 GB
  • Disco 16 GB
xxlarge
  • CPU 12
  • Memória 48 GB
  • Disco 48 GB
  • CPU 12
  • Memória 48 GB
  • Disco 48 GB

Se você não tiver certeza sobre qual tamanho escolher, considere começar com small ou medium. Se a construção falhar devido à falta de memória ou espaço em disco ou não for rápida o suficiente, alterne para tamanhos maiores.

Escolha seu registro de imagem de contêiner

O Code Engine extrai o código-fonte de um repositório Git ou um diretório local, constrói o código e, em seguida, envia por push (upload) a imagem para um registro de imagem de contêiner.

É possível usar repositórios para a origem e registros para a imagem de contêiner que são públicos ou privados. Você também pode optar por especificar os detalhes do registro com um segredo do registro para a saída da compilação ou pode escolher que o site Code Engine cuide da compilação da imagem para você a partir da fonte e armazene a imagem em IBM Cloud Container Registry com acesso automático.

Escolha seu método de construção

Nas opções de compilação a seguir, o Code Engine extrai o código-fonte de um repositório Git ou de um diretório local, cria a imagem do contêiner e, em seguida, faz push (upload) da imagem do contêiner para um registro. Você pode escolher entre repositórios e registros públicos ou privados. Se o seu registro for privado, especifique os detalhes do registro com um segredo de registro para a saída da compilação com acesso fornecido pelo usuário. Ou você pode optar pelo Code Engine para criar acesso para armazenar a imagem em IBM Cloud Container Registry para você com acesso automático.

Criar configurações de compilação

Nesse cenário, Code Engine cria uma configuração para sua compilação.

A criação de uma configuração de compilação não cria uma imagem, mas, em vez disso, cria a configuração para compilar uma imagem. Você pode criar uma imagem a partir da configuração executando a compilação. A configuração de construção não é validada nem usada para criar uma imagem até que a construção seja executada. A configuração de construção possibilita várias construções subsequentes de uma imagem, como quando as mudanças são aplicadas ao repositório de origem.

Para obter mais informações,consulte os tópicos a seguir.

Depois de criar sua configuração de compilação, você pode executá-la.

Criar imagem de contêiner com comandos de compilação autônomos

Para saber como construir a imagem de contêiner com um único comando da CLI do Code Engine e criar a imagem do contêiner sem criar uma configuração de construção reutilizável, consulte Construindo uma imagem de contêiner com comandos de construção independentes (CLI).

Desenvolva seu código e crie sua carga de trabalho

Quando você cria uma carga de trabalho a partir do código-fonte local, o código-fonte é compactado em um arquivo e carregado em um namespace gerenciado dentro da instância IBM Cloud Container Registry em sua conta. A imagem também é armazenada nesse mesmo namespace.

Para desenvolver seu código e criar sua carga de trabalho com uma única operação, consulte os tópicos a seguir.

Repositório Git
Arquivo local

Próximas etapas para construções

Procurando mais exemplos de código? Confira o repositório Samples for IBM Cloud Code Engine GitHub.