Construindo uma imagem de contêiner com comandos de construção independentes (CLI)
Quando o seu código existe como código-fonte em um arquivo local ou em um repositório Git, Code Engine fornece opções para que você crie o seu código como uma imagem de contêiner, de acordo com o padrão OCI(Open Container Initiative). Com a CLI do Code Engine, é possível construir uma imagem de contêiner com um único comando.
O Code Engine oferece a flexibilidade para lidar com o processo de construção para você sempre que você estiver implementando seu app por meio do código-fonte do repositório, implementando seu app por meio do código-fonte local com a CLI ou criando uma tarefa por meio do código-fonte do repositório ou criando sua tarefa por meio do código-fonte local com a CLI.
No entanto, se você quiser mais controle sobre a construção da sua imagem de contêiner, o Code Engine oferece a flexibilidade para construir sua imagem de contêiner usando uma das opções a seguir:
- Use um único comando da CLI,
buildrun submit, para executar uma execução de compilação. O benefício dessa opção é que você pode obter a sua construção com um único comando da CLI; no entanto, a configuração para a construção não é preservada. - Defina uma configuração de construção por meio da qual é possível realizar várias execuções de compilação. Consulte Construindo uma imagem de contêiner usando uma configuração de construção.
Após concluir a construção e sua imagem existir,será possível implementar a imagem de contêiner como um aplicativo ou criar uma tarefa que referencie sua imagem.
Vamos aprender sobre como construir sua imagem de contêiner com um único comando e não referenciar uma configuração de construção. Neste cenário, o IBM Cloud® Code Engine extrai o código-fonte de um repositório Git ou um diretório local, o constrói e, em seguida, envia por push (faz upload) a imagem de contêiner para um registro. É possível escolher repositórios e registros públicos ou privados. Você pode optar por especificar detalhes do registro com um segredo de registro para a saída da compilação com acesso fornecido pelo usuário. Ou ainda, é possível optar por deixar o Code Engine cuidar da construção da imagem por meio de sua origem e armazenar a imagem no IBM Cloud Container Registry com acesso automático.
É 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.
Considere os pontos a seguir antes de construir sua imagem de contêiner:
-
Antes de iniciar a construção das imagens, revise as informações de planejamento. Também será necessário verificar se você pode acessar o registro. Consulte Configurando autoridades para registros de contêiner.
-
Se você construir várias versões da mesma imagem de contêiner, a versão mais recente da imagem de contêiner será transferida por download e usada quando você executar sua tarefa ou implementar seu aplicativo, a menos que uma tag seja especificada para a imagem. Se uma tag for especificada para a imagem, a imagem marcada será usada para o app ou a tarefa.
-
As execuções de compilação enviadas com a CLI que não fazem referência a uma configuração de compilação definida também podem ser visualizadas no console. Na página do projeto, clique em Construções de imagem para visualizar a lista de construções de imagens e execuções de construção. Com a CLI, use o comando
ibmcloud ce buildrun listpara visualizar uma lista de todas as execuções de construção em um projeto.. -
O Code Engine tem cotas para execuções de compilação dentro de um projeto. Para obter mais informações sobre limites do Code Engine, consulte Limites e cotas para o Code Engine.
As execuções de construção que completam são finalmente excluídas automaticamente. Quando você executa um build run com um único comando CLI tal que ele não é baseado em uma configuração de construção, esta execução de construção é excluída após 1 hora se a execução da construção for bem-sucedida. Se a execução da construção não for bem-sucedida, esta execução de construção será excluída após 24 horas. Você só pode exibir informações sobre esse build run com a CLI. Não é possível visualizar esta construção executada no console.
Executando uma construção única que extrai a origem do repositório público com a CLI
Se sua origem estiver localizada em um repositório público e você quiser usar um único comando para construir e emitir uma imagem de contêiner, use o comando buildrun submit para criar a imagem de contêiner sem
criar uma configuração de construção reutilizável.
Para a saída de construção, é possível escolher acesso automático e deixar que o Code Engine cuide da construção da imagem por meio da sua origem e do armazenamento da imagem no IBM Cloud Container Registry. Nesse caso, não é necessário especificar um segredo de registro ou o local do registro da imagem. Ou então, você pode escolher o acesso fornecido pelo usuário e especificar os detalhes do registro junto com um segredo do registro para acessar a imagem criada no registro.
Para uma listagem completa de opções para executar uma única construção, consulte o comando ibmcloud ce buildrun submit.
Executando uma construção única com a CLI (com origem de repositório público e acesso automático ao registro)
Neste cenário de acesso automático, o Code Engine constrói uma imagem por meio da origem de seu repositório Git público e faz upload da imagem no IBM Cloud Container Registry com acesso automático usando opções de construção com o
comando buildrun submit. Nesse caso, não é necessário especificar um segredo de registro ou o local do registro da imagem.
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
-
Execute uma construção para construir uma imagem por meio de um repositório Git público e deixe o Code Engine armazenar e acessar a imagem automaticamente. Por exemplo, o comando
buildrun submita seguir realiza uma execução de compilação que é chamadahelloworld-buildrune construída por meio da origem no repositório Git públicohttps://github.com/IBM/CodeEngine.ibmcloud ce buildrun submit --name helloworld-buildrun --source https://github.com/IBM/CodeEngine --context-dir /hello- Neste exemplo, o comando usa a estratégia
dockerfilepadrão, e o tamanho de construçãomediumpadrã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 émainpara 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.
- O Code Engine determina automaticamente se a sua origem reside em um repositório ou em uma estação de trabalho local, com base no valor da opção
--source.
Saída de exemplo
Submitting build run 'helloworld-buildrun'... Creating image 'private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun' to check the build run status. OKA tabela a seguir resume as opções que são usadas com o comando
buildrun submitneste exemplo. Consulte o comandoibmcloud ce buildrun submitpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da execução de compilação. Use um nome que seja exclusivo dentro do projeto.
- O nome deve começar e terminar com uma letra minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter caracteres alfanuméricos minúsculos e hifens (-).
--sourceA URL do repositório Git ou o caminho para origem local que contém o seu código-fonte; por exemplo, https://github.com/IBM/CodeEngine.--context-dirO 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. - Neste exemplo, o comando usa a estratégia
-
Use o comando
buildrun getpara verificar o status de sua execução de compilação.ibmcloud ce buildrun get -n helloworld-buildrunSaí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-buildrun' For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun' to follow the logs of the build run. OK Name: helloworld-buildrun ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:30:46-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:ba3c445a27238040e102c083f76ad8922effcc3a7c4dc97b8472e626d87c11a2 Image: private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun 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
Executando uma construção única com a CLI (com origem de repositório público e acesso ao registro fornecido pelo usuário)
Neste cenário de acesso fornecido pelo usuá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 de registro que você fornece com um comando de construção única.
Antes de Iniciar
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
- Criar um segredo de registro para que seja possível salvar sua imagem.
-
Execute uma compilação para criar 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. Por exemplo, o comando
buildrun submita seguir executa uma execução de compilação chamadahelloworld-buildrun2que é construída a partir do Git repohttps://github.com/IBM/CodeEnginepúblico e armazena a imagem para o registro dous.icr.io/mynamespace/codeengine-helloworldusando o segredo de registro domyregistrypara acessar esse registroibmcloud ce buildrun submit --name helloworld-buildrun2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello- Neste exemplo, o comando usa a estratégia
dockerfilepadrão, e o tamanho de construçãomediumpadrã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 émainpara este repositório Git. - Se você estiver usando a opção
--strategycom o valor dedockerfile, certifique-se de que a opção--dockerfileestá corretamente configurada para o nome dodockerfile. O valor padrão para a opção--strategyéDockerfile. - O Code Engine determina automaticamente se a sua origem reside em um repositório ou em uma estação de trabalho local, com base no valor da opção
--source.
Saída de exemplo
Submitting build run 'helloworld-buildrun2'... Creating image 'us.icr.io/mynamespace/codeengine-helloworld'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun2' to check the build run status. OKA tabela a seguir resume as opções que são usadas com o comando
buildrun submitneste exemplo. Consulte o comandoibmcloud ce buildrun submitpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da execução de compilação. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
- O nome deve começar e terminar com uma letra minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter caracteres alfanuméricos minúsculos e hifens (-).
--imageO local do registro de imagem. O formato do local deve ser REGISTRY/NAMESPACE/REPOSITORYouREGISTRY/NAMESPACE/REPOSITORY:TAGno qualTAGé opcional. SeTAGnão for especificado, o padrão serálatest.--registry-secretO segredo do registro que é usado para acessar o registro quando você cria a imagem do contêiner. Execute o comando secret create --format registrypara criar um segredo de registro. O segredo do registro é usado para autenticar com um registro privado.--sourceA URL do repositório Git ou o caminho para origem local que contém o seu código-fonte; por exemplo, https://github.com/IBM/CodeEngine.--context-dirO 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. - Neste exemplo, o comando usa a estratégia
-
Use o comando
buildrun getpara verificar o status de sua execução de compilação.ibmcloud ce buildrun get --name helloworld-buildrun2Saída de exemplo
Getting build run 'helloworld-buildrun2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n helloworld-buildrun2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n helloworld-buildrun2' to follow the logs of the build run. OK Name: helloworld-buildrun2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:57:43-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:6312ee613efa5bec7baa20c47f607e7f15473947d5675fd7384491bee8023afc Image: us.icr.io/mynamespace/codeengine-helloworld2 Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Context Directory: /hello Dockerfile: Dockerfile
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 sua imagem e o segredo não existir, consulte Acessando registros de contêiner.
Para obter mais informações sobre construções, verifique as Dicas de resolução de problemas.
Executando uma construção única que extrai a origem do repositório privado com a CLI
Se sua origem estiver localizada em um repositório privado e você quiser usar um único comando para construir e emitir uma imagem de contêiner, use o comando buildrun submit para criar a imagem de contêiner sem
criar uma configuração de construção reutilizável.
Para a saída de construção, é possível escolher acesso automático e deixar que o Code Engine cuide da construção da imagem por meio da sua origem e do armazenamento da imagem no IBM Cloud Container Registry. Nesse caso, não é necessário especificar um segredo de registro ou o local do registro da imagem. Ou então, você pode escolher o acesso fornecido pelo usuário e especificar os detalhes do registro junto com um segredo do registro para acessar a imagem criada no registro.
Para uma listagem completa de opções para executar uma única construção, consulte o comando ibmcloud ce buildrun submit.
Executando uma construção única com a CLI (com origem de repositório privado e acesso automático ao registro)
Neste cenário de acesso automático, o Code Engine constrói uma imagem por meio da origem do repositório privado e faz upload da imagem para o IBM Cloud Container Registry com acesso automático usando opções de construção com o comando
buildrun submit. Nesse caso, não é necessário especificar um segredo de registro ou o local do registro da imagem.
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
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
- Crie um segredo do repositório Git para acessar sua origem.
-
Execute uma construção para construir uma imagem por meio de um repositório privado e deixe o Code Engine automaticamente armazenar e acessar a imagem. Por exemplo, o comando
buildrun submita seguir realiza uma execução de compilação que é chamadahelloworld-buildrun-privatee construída por meio do repositório Git privadohttps://github.com/myprivaterepo/builds.ibmcloud ce buildrun submit --name helloworld-buildrun-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh- Este comando de exemplo usa a estratégia
buildpackse o tamanho de construçãomedium. - 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.
- Como a fonte no repositório Git especificado é privada, o acesso requer um segredo SSH. Um segredo do SSH também é usado como um segredo de acesso do repositório do Git Como resultado, o
--sourceque você especificar deve usar o protocolo SSH, comogit@github.com:myprivaterepo/builds.git. O valor para--sourcenão deve usar o formatohttpouhttps. - 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. - O Code Engine determina automaticamente se a sua origem reside em um repositório ou em uma estação de trabalho local, com base no valor da opção
--source.
A tabela a seguir resume as opções que são usadas com o comando
buildrun submitneste exemplo. Consulte o comandoibmcloud ce buildrun submitpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da execução de compilação. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
- O nome deve começar e terminar com uma letra minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter caracteres alfanuméricos minúsculos e hifens (-).
--sourceA URL do repositório Git ou o caminho para origem local que contém o seu código-fonte; por exemplo, git@github.com:myprivaterepo/builds.git.--context-dirO 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. --strategyA estratégia a ser usada para construir a imagem. Os valores válidos são dockerfileebuildpacks.--git-repo-secretO nome do segredo SSH que contém as credenciais para acessar o repositório privado que contém o código-fonte para construir sua imagem de contêiner. Execute o comando secret create --sshpara criar esse segredo.. Um segredo do SSH também é usado como um segredo de acesso do repositório do Git - Este comando de exemplo usa a estratégia
-
Use o comando
buildrun getpara verificar o status de sua execução de compilação.ibmcloud ce buildrun get --name helloworld-buildrun-privateSaída de exemplo
Getting build run 'helloworld-buildrun-private'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private' to follow the logs of the build run. OK Name: helloworld-buildrun-private ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-08T06:02:36-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-buildrun-private Registry Secret: ce-auto-icr-private-us-south Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
Executando uma construção única com a CLI (com origem de repositório privado e acesso ao registro fornecido pelo usuário)
Neste cenário de acesso fornecido pelo usuário, o Code Engine constrói uma imagem por meio da origem do repositório privado com um segredo de repositório Git que você fornece e, em seguida, faz upload da imagem para o seu registro de contêiner com o acesso de registro que você fornece com um comando de construção única.
Antes de Iniciar
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
- Crie um segredo SSH para acessar sua origem.
- Criar um segredo de registro para que seja possível salvar sua imagem.
-
Execute uma compilação para criar uma imagem a partir de um repositório privado e especifique o local do registro de imagem para a saída da compilação com um segredo de registro. O comando
buildrun submitde exemplo a seguir executa uma execução de compilação chamadahelloworld-buildrun-private2que é construída a partir do Git repohttps://github.com/myprivaterepo/buildsprivado e armazena a imagem para ous.icr.io/mynamespace/codeengine-helloworldusando o segredo de registro domyregistrypara acessar esse registro.ibmcloud ce buildrun submit --name helloworld-buildrun-private2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh- Este comando de exemplo usa a estratégia
buildpackse o tamanho de construçãomediumpadrão. - Como o repositório Git fornecido é privado, o acesso requer um segredo SSH. Um segredo do SSH também é usado como um segredo de acesso do repositório do Git Como resultado, o
--sourceque você especificar deve usar o protocolo SSH, comogit@github.com:myprivaterepo/builds.git. O valor para--sourcenão deve usar o formatohttpouhttps. - 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. - O Code Engine determina automaticamente se a sua origem reside em um repositório ou em uma estação de trabalho local, com base no valor da opção
--source.
A tabela a seguir resume as opções que são usadas com o comando
buildrun submitneste exemplo. Consulte o comandoibmcloud ce buildrun submitpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da execução de compilação. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
- O nome deve começar e terminar com uma letra minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter caracteres alfanuméricos minúsculos e hifens (-).
--imageO local do registro de imagem. O formato do local deve ser REGISTRY/NAMESPACE/REPOSITORYouREGISTRY/NAMESPACE/REPOSITORY:TAGno qualTAGé opcional. SeTAGnão for especificado, o padrão serálatest.--registry-secretO segredo do registro que é usado para acessar o registro quando você cria a imagem do contêiner. Execute o comando secret create --format registrypara criar um segredo de registro. O segredo do registro é usado para autenticar com um registro privado.--sourceA URL do repositório Git ou o caminho para origem local que contém o seu código-fonte; por exemplo, git@github.com:myprivaterepo/builds.git.--context-dirO 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. --strategyA estratégia a ser usada para construir a imagem. Os valores válidos são dockerfileebuildpacks.--git-repo-secretO nome do segredo SSH que contém as credenciais para acessar o repositório privado que contém o código-fonte para construir sua imagem de contêiner. Execute o comando secret create --sshpara criar esse segredo.. Um segredo do SSH também é usado como um segredo de acesso do repositório do Git - Este comando de exemplo usa a estratégia
-
Use o comando
buildrun getpara verificar o status de sua execução de compilação.ibmcloud ce buildrun get --name helloworld-buildrun-private2Saída de exemplo
Getting build run 'helloworld-buildrun-private2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private2' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private2' to follow the logs of the build run. OK Name: helloworld-buildrun-private2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d10h Created: 2022-06-08T06:11:05-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
Executando uma construção única que extrai a origem de um diretório local
Se sua origem estiver em uma estação de trabalho local e você quiser usar um único comando para construir e emitir uma imagem de contêiner, use o comando buildrun submit para criar a imagem de contêiner sem criar
uma configuração de construção reutilizável.
Para a saída de construção, é possível escolher acesso automático e deixar que o Code Engine cuide da construção da imagem por meio da sua origem e do armazenamento da imagem no IBM Cloud Container Registry. Nesse caso, não é necessário especificar um segredo de registro ou o local do registro da imagem. Ou então, você pode escolher o acesso fornecido pelo usuário e especificar os detalhes do registro junto com um segredo do registro para acessar a imagem criada no registro.
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. Note que você só pode destinar o IBM Cloud Container Registry para suas construções locais. A imagem de origem é criada no mesmo espaço de nomes da sua imagem de construção.
É 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.
Para uma listagem completa de opções para executar uma única construção, consulte o comando ibmcloud ce buildrun submit.
Executando uma construção única com a CLI (com origem local e acesso automático ao registro)
Neste cenário de acesso automático, o Code Engine constrói uma imagem por meio da origem local e faz upload da imagem para o IBM Cloud Container Registry com acesso automático usando opções de construção com o comando buildrun submit.
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. Nesse caso, não é necessário especificar um segredo de registro ou o local do registro da imagem.
Antes de Iniciar
Antes de trabalhar com a origem local, certifique-se de que sua origem esteja em um local acessível em sua estação de trabalho local.
Este exemplo usa as amostras https://github.com/IBM/CodeEngine; em particular, a amostra helloworld.
-
Faça download da origem de amostra
https://github.com/IBM/CodeEnginepara sua estação de trabalho local com o comando a seguir.git clone https://github.com/IBM/CodeEngine -
Mude para o diretório
CodeEngine\helloworld. -
A partir do diretório
CodeEngine\helloworld, execute uma construção para construir uma imagem a partir da origemhelloworldem sua estação de trabalho local e deixe Code Engine armazenar e acessar a imagem automaticamente. Este comando automaticamente constrói e envia por push a imagem para um namespace do Container Registry em sua conta. Se você não tiver um namespace do Container Registry, o Code Engine criará automaticamente um para você. Por exemplo, o comandobuildrun submita seguir realiza uma execução de compilação que é chamadabuildrun-local-dockerfilee construída por meio da origem local.ibmcloud ce buildrun submit --name buildrun-local-dockerfile --source .O
.indica que a origem de construção está localizada em seu diretório atualmente em funcionamento.- Este comando de exemplo usa a estratégia
dockerfilepadrão e o tamanho de construçãomediumpadrão. - 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.
- O Code Engine determina automaticamente se a sua origem reside em um repositório ou em uma estação de trabalho local, com base no valor da opção
--source.
Saída de exemplo
Packaging files to upload from source path '.'... Submitting build run 'buildrun-local-dockerfile'... Creating image 'private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile'... Run 'ibmcloud ce buildrun get -n buildrun-local-dockerfile' to check the build run status. OKA tabela a seguir resume as opções que são usadas com o comando
buildrun submitneste exemplo. Consulte o comandoibmcloud ce buildrun submitpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da execução de compilação. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
- O nome deve começar e terminar com uma letra minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter caracteres alfanuméricos minúsculos e hifens (-).
--sourceO caminho para a origem local que contém o seu código-fonte ou a URL do repositório Git; por exemplo, .. - Este comando de exemplo usa a estratégia
-
Use o comando
buildrun getpara verificar o status de sua execução de compilação.ibmcloud ce buildrun get --name buildrun-local-dockerfileSaída de exemplo
Getting build run 'buildrun-local-dockerfile'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile' to follow the logs of the build run. OK Name: buildrun-local-dockerfile ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:09:34-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:ced7abc34f018941145efb56e9a0c1fca99236653c2a05dd5b8b985928ff5f4f Image Digest: sha256:6459430ff49436494aa5e3103eaac98ad90ea50df88a2e14af6314fe88f3c952 Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile Registry Secret: ce-auto-icr-private-us-south Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile-source Source Registry Secret: ce-auto-icr-private-us-south Dockerfile: DockerfileObserve o nome gerado para a imagem e que o nome do segredo de registro criado automaticamente tem o formato
ce-auto-icr-private-<region>.
Executando uma construção única com a CLI (com origem e acesso ao registro fornecido pelo usuário)
Neste cenário de acesso fornecido pelo usuário, o Code Engine constrói uma imagem por meio origem local e, em seguida, faz upload da imagem para o seu registro de contêiner com o acesso de registro que você fornece com o comando buildrun submit.
Antes de Iniciar
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
- Criar um segredo de registro para que seja possível salvar sua imagem.
Antes de trabalhar com a origem local, certifique-se de que sua origem esteja em um local acessível em sua estação de trabalho local.
Este exemplo usa as amostras https://github.com/IBM/CodeEngine; em particular, a amostra helloworld.
-
Faça download da origem de amostra
https://github.com/IBM/CodeEnginepara sua estação de trabalho local com o comando a seguir.git clone https://github.com/IBM/CodeEngine -
Mude para o diretório
CodeEngine\helloworld. -
No diretório
CodeEngine\helloworld, execute uma compilação para criar uma imagem a partir dahelloworldfonte em sua estação de trabalho local e especifique o local do registro de imagem para a saída da compilação com um segredo de registro. Este comandobuildrun submitconstrói automaticamente e envia por push a imagem para o registro que você especifica com a opção--image. Especifique a opção--registry-secretpara acessar seu registro.ibmcloud ce buildrun submit --name buildrun-local-dockerfile2 --source . --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistryO
.indica que a origem de construção está localizada em seu diretório atualmente em funcionamento.- O Code Engine determina automaticamente se a sua origem reside em um repositório ou em uma estação de trabalho local, com base no valor da opção
--source. - Neste exemplo, o comando usa a estratégia
dockerfilepadrão, e o tamanho de construçãomediumpadrão.
A tabela a seguir resume as opções que são usadas com o comando
buildrun submitneste exemplo. Consulte o comandoibmcloud ce buildrun submitpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da execução de compilação. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
- O nome deve começar e terminar com uma letra minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter caracteres alfanuméricos minúsculos e hifens (-).
--sourceO caminho para a origem local que contém o seu código-fonte ou a URL do repositório Git; por exemplo, ..--imageO local do registro de imagem. O formato do local deve ser REGISTRY/NAMESPACE/REPOSITORYouREGISTRY/NAMESPACE/REPOSITORY:TAGno qualTAGé opcional. SeTAGnão for especificado, o padrão serálatest.--registry-secretO segredo do registro que é usado para acessar o registro quando você cria a imagem do contêiner. Execute o comando secret create --format registrypara criar um segredo de registro. O segredo do registro é usado para autenticar com um registro privado. - O Code Engine determina automaticamente se a sua origem reside em um repositório ou em uma estação de trabalho local, com base no valor da opção
-
Use o comando
buildrun getpara verificar o status de sua execução de compilação.ibmcloud ce buildrun get --name buildrun-local-dockerfile2Saída de exemplo
Getting build run 'buildrun-local-dockerfile2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile2' to follow the logs of the build run. OK Name: buildrun-local-dockerfile2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:34:42-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:00fb80a8cdc17394ccae564efceb81f48c2cbcbd76afd0fb0b74019352933a63 Image Digest: sha256:25bc4bedccc1b34c98ccd92368246df3e61a7cf0cf4915a32f111669b60e2fea Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: us.icr.io/mynamespace/codeengine-helloworld-source Source Registry Secret: myregistry Dockerfile: Dockerfile
Próximas etapas para construções
Agora que você construiu uma imagem de contêiner por meio da origem, é possível criar um aplicativo ou tarefa que usa sua imagem de contêiner. Consulte Implementando aplicativos e Executando tarefas.
Procurando mais exemplos de código? Confira as Amostras para IBM Cloud Code Engine GitHub repo.