Criar uma configuração de construção que extraia a origem do repositório público

Se a sua origem estiver localizada em um repositório público, crie uma configuração de construção com definições que incluam informações sobre onde extrair a origem de um repositório público. Para a saída da compilação, você pode optar por especificar detalhes do registro junto com um segredo do registro para acessar a imagem compilada no registro. Ou ainda, é possível optar por deixar que o Code Engine cuide da construção da imagem para você por meio sua origem e armazene a imagem no IBM Cloud Container Registry. Nesse caso, não é necessário especificar um segredo de registro ou o local do registro da imagem.

A criação de uma configuração de construção não cria uma imagem, mas cria a configuração para construir uma imagem. Em seguida, deve-se executar uma construção que referencie a configuração de construção para criar uma imagem. 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.

É 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 .gitignoreGitHub.

Criando uma configuração de construção por meio do console (repositório público)

  1. Acesse o painel do Code Engine.

  2. Selecione o projeto no qual incluiu seu registro de contêiner.

  3. Na página de projeto, clique em Construções de imagem.

  4. Na guia Construção de imagem, clique em Criar. O painel lateral Especificar detalhes da construção abre e você insere os detalhes de sua construção.

  5. Na seção Origem, insira um nome para sua construção, a URL do seu repositório de origem e o seu acesso de repositório do código.

    • Se o seu código estiver em um repositório público, use um URL HTTPS e selecione None (Nenhum ) para o acesso ao repositório de código. Um exemplo de URL HTTPS é https://github.com/IBM/CodeEngine.
    • Se o seu código estiver em um repositório privado, use uma URL SSH para a URL do repositório de código e selecione o nome de um acesso de repositório de código existente ou crie um acesso de repositório de código. Um exemplo de uma URL SSH é git@github.com:IBM/CodeEngine.git.
    • Opcionalmente, selecione um nome de ramificação de origem. Se você não fornecer um nome de ramificação e deixar o campo vazio, o Code Engine usará automaticamente a ramificação padrão do repositório especificado. É possível inserir qualquer outro nome de ramificação, tag ou ID de confirmação.

    Clique em Avançar para continuar.

  6. Na seção Estratégia, selecione a estratégia que você deseja usar.

    • Se você selecionar Dockerfile, será possível também especificar um caminho alternativo para o seu Dockerfile.
    • Selecione o tamanho de sua construção em Recursos de construção.

    Clique em Avançar para continuar.

  7. Na seção Saída, insira os detalhes da sua imagem de contêiner.

    • Selecione um segredo de registro existente ou clique em Create registry secret (Criar segredo de registro ) para adicionar um novo.
    • Se estiver criando sua imagem para uma instância Container Registry que esteja em sua conta, você poderá selecionar Code Engine managed secret e Code Engine criará e gerenciará o segredo para você.
    • Em seguida, selecione o namespace, o repositório e a tag da imagem que você deseja construir. Você pode escolher Code Engine para criar e gerenciar o namespace em Container Registry para você.
    • Se a sua imagem existir no Container Registry, será possível selecionar entre as imagens existentes ou inserir um novo repositório ou tag.
  8. Clique em Pronto para concluir a criação da construção.

Depois de criar a configuração de construção, deve-se executar a construção para criar o arquivo de imagem Depois que seu arquivo de imagem é criado, é possível implementar um aplicativo ou executar uma tarefa com seu arquivo de imagem recém-construído

Criando uma configuração de construção com a CLI (repositório público)

Para criar uma configuração de construção com a CLI, use o comando build create. Para obter uma listagem completa de opções, consulte o comando ibmcloud ce build create.

Com o comando build create, é possível optar por deixar que o Code Engine cuide da construção da imagem para você por meio da sua origem e depois armazene a imagem no IBM Cloud Container Registry. Para esse caso de acesso automático, não é necessário especificar um segredo de registro ou o local do registro de imagem. Ou você pode especificar o local para a saída da imagem da compilação e fornecer um segredo de registro para que Code Engine possa acessar e enviar o resultado da compilação para o seu registro.

Criando uma configuração de construção com a CLI (com origem de repositório público e acesso automático ao registro)

Neste cenário, o Code Engine constrói uma imagem por meio da origem do repositório Git público, e automaticamente faz upload da imagem para o IBM Cloud Container Registry com acesso automático. Consulte Configurando autoridades para registros de imagem para obter mais informações sobre a configuração de permissões necessárias para o Code Engine acessar automaticamente essas imagens no Container Registry.

Antes de Iniciar

  1. Crie uma configuração de construção para construir uma imagem por meio de um repositório Git público e deixe que o Code Engine armazene e acesse a imagem automaticamente. Por exemplo, o comando build create a seguir cria uma configuração de construção que é chamada helloworld-build e construída por meio da origem no repositório Git públicohttps://github.com/IBM/CodeEngine. Neste exemplo, o comando usa a estratégia dockerfile padrão, e o tamanho de construção medium padrão. Como o nome da ramificação do repositório não é especificado com a opção --commit, o Code Engine usa automaticamente a ramificação padrão do repositório especificado, que é main para este repositório Git. Ao não especificar o local do registro de imagem ou um segredo de registro, Code Engine envia a saída da compilação para IBM Cloud Container Registry com acesso automático.

    ibmcloud ce build create --name helloworld-build --source https://github.com/IBM/CodeEngine --context-dir /hello
    

    Saída de exemplo

    Creating build helloworld-build...
    OK
    

    A tabela a seguir resume as opções que são usadas com o comando build create neste exemplo. Consulte o comando ibmcloud ce build create para obter mais informações sobre ele e as opções que ele oferece.

    Descrição do comando
    Opção Descrição
    --name O nome da compilação. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
    -O nome deve começar com uma letra minúscula.
    -O nome deve terminar com um caractere alfanumérico minúscula.
    -O nome deve ter 55 caracteres ou menos e pode conter letras, números e hifens (-).
    --source A URL do repositório Git que contém o seu código-fonte; por exemplo, https://github.com/IBM/CodeEngine.
    --context-dir O diretório no repositório que contém o arquivo buildpacks ou o Dockerfile. Especifique esse valor se o seu arquivo de buildpacks ou Dockerfile estiver contido em um subdiretório. Este valor é opcional.
  2. Use o comando build get para verificar o status da construção.

    ibmcloud ce build get --name helloworld-build
    

    Saída de exemplo

    Observe o nome gerado para a imagem e que o nome do segredo de registro criado automaticamente tem o formato ce-auto-icr-private-<region>.

    Getting build 'helloworld-build'
    OK
    
    Name:          helloworld-build  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-05-24T09:58:43-05:00  
    Build Type:    git  
    Status:        Succeeded  
    Reason:        all validations succeeded
    
    Image:              private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-build
    Registry Secret:    ce-auto-icr-private-us-south  
    Build Strategy:     dockerfile-medium
    Timeout:            10m0s
    Source:             https://github.com/IBM/CodeEngine
    Commit:             main
    Context Directory:  /hello
    Dockerfile:         Dockerfile
    
    

Depois de criar a configuração de construção, deve-se executar a construção para criar o arquivo de imagem Depois que seu arquivo de imagem é criado, é possível implementar um aplicativo ou executar uma tarefa com seu arquivo de imagem recém-construído

Criando uma configuração de construção com a CLI (com origem de repositório público e acesso ao registro fornecido pelo usuário)

Neste cenário, o Code Engine constrói uma imagem por meio da origem do repositório Git público e, em seguida, faz upload da imagem para o seu registro de contêiner com o acesso ao registro que você fornece.

Antes de Iniciar

  1. Crie uma configuração de compilação para compilar uma imagem a partir de um repositório Git público e especifique o local do registro de imagem para a saída da compilação com um segredo de registro. Com o comando build create, especifique a opção --image para fornecer o local do registro da imagem, e especifique a opção --registry-secret para acessar o registro. Por exemplo, o comando a seguir cria uma configuração de construção chamada helloworld-build2 que é construída a partir do Git repo https://github.com/IBM/CodeEngine público e armazena a imagem no us.icr.io/mynamespace/codeengine-helloworld usando o segredo de registro myregistry. Neste exemplo, o comando usa a estratégia dockerfile padrão, e o tamanho de construção medium padrão. Como o nome da ramificação do repositório não é especificado com a opção --commit, o Code Engine usa automaticamente a ramificação padrão do repositório especificado, que é main para este repositório Git.

    Se você estiver usando a opção --strategy com o valor de dockerfile, certifique-se de que a opção --dockerfile está corretamente configurada para o nome do dockerfile. O valor padrão para a opção --strategy é Dockerfile.

    ibmcloud ce build create --name helloworld-build2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello
    

    Saída de exemplo

    Creating build helloworld-build2...
    OK
    

    A tabela a seguir resume as opções que são usadas com o comando build create neste exemplo. Consulte o comando ibmcloud ce build create para obter mais informações sobre ele e as opções que ele oferece.

    Descrição do comando
    Opção Descrição
    --name O nome da compilação. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
    -O nome deve começar com uma letra minúscula.
    -O nome deve terminar com um caractere alfanumérico minúscula.
    -O nome deve ter 55 caracteres ou menos e pode conter letras, números e hifens (-).
    --image O local do registro de imagem. O formato do local deve ser REGISTRY/NAMESPACE/REPOSITORY ou REGISTRY/NAMESPACE/REPOSITORY:TAG no qual TAG é opcional. Se TAG não for especificado, o padrão será latest.
    --registry-secret O segredo do registro que é usado para acessar o registro. É possível incluir o segredo de registro, executando o comando secret create --format registry O segredo do registro é usado para autenticação em um registro privado.
    --source A URL do repositório Git que contém o seu código-fonte; por exemplo, https://github.com/IBM/CodeEngine.
    --context-dir O diretório no repositório que contém o arquivo buildpacks ou o Dockerfile. Especifique esse valor se o seu arquivo de buildpacks ou Dockerfile estiver contido em um subdiretório. Este valor é opcional.
  2. Use o comando build get para verificar o status da construção.

    ibmcloud ce build get --name helloworld-build2
    

    Saída de exemplo

    Getting build 'helloworld-build2'
    OK
    
    Name:          helloworld-build2  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2021-03-14T14:48:19-05:00  
    Status:        Succeeded  
    Reason:        all validations succeeded
    
    Image:              us.icr.io/mynamespace/codeengine-helloworld
    Registry Secret:    myregistry
    Build Strategy:     dockerfile-medium
    Timeout:            10m0s
    Source:             https://github.com/IBM/CodeEngine
    Commit:             main
    Context Directory:  /hello
    Dockerfile:         Dockerfile
    
    

Depois de criar a configuração de construção, deve-se executar a construção para criar o arquivo de imagem Depois que seu arquivo de imagem é criado, é possível implementar um aplicativo ou executar uma tarefa com seu arquivo de imagem recém-construído

Se você receber uma falha de validação de comando, verifique se o seu segredo existe. Se você se referir a um segredo de registro --registry-secret) para a sua imagem e o segredo não existir, consulte Acesso a registros de contêineres. Para obter mais informações sobre construções, verifique as Dicas de resolução de problemas.