Criando uma tarefa por meio do código-fonte do repositório
É possível criar sua tarefa diretamente por meio do código-fonte que está localizado em um repositório Git com o console e a CLI do IBM Cloud® Code Engine. Descubra as vantagens disponíveis ao construir sua imagem com o Code Engine.
Criando sua tarefa do código-fonte do repositório por meio do console
É possível criar sua tarefa diretamente por meio do código-fonte com o console.
Antes de começar, planeje sua construção. Também é possível localizar dicas para criar um Dockerfile. Cada vez que você executa a tarefa, a versão mais atual dos artefatos de construção dependentes, incluindo os buildpacks e a imagem de contêiner, são usados durante o processo de construção e são incluídos na imagem de contêiner resultante.
O Code Engine pode automaticamente enviar por push (upload) imagens para os namespaces do IBM Cloud® Container Registry em sua conta e até mesmo criar um namespace para você. Para enviar por push imagens para uma conta diferente do Container Registry ou para uma conta privada do Docker Hub, veja Acessando registros de contêineres.
Para obter informações sobre permissões necessárias para acessar registros de imagens, consulte Configurando autoridades para registros de imagens.
- Abra o console Code Engine.
- Selecione Vamos.
- Selecione Tarefa.
- Insira um nome para a tarefa. Use um nome para a sua tarefa que seja exclusivo dentro do projeto.
- Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que deve-se ter um projeto selecionado para criar uma tarefa.
- Selecione Código-fonte.
- Clique em Especificar detalhes da construção.
- Selecione um repositório de origem, por exemplo,
https://github.com/IBM/CodeEngine. Como estamos usando a origem de amostra que não requer credenciais, selecioneNonepara o acesso ao repositório do Code. É possível, opcionalmente, fornecer um nome de ramificação. 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. Clique em Avançar. - Selecione uma estratégia e os recursos para sua construção. Para obter mais informações sobre as opções de construção, consulte Planejando sua construção. Clique em Avançar.
- Forneça informações de registro sobre onde armazenar a imagem de sua saída de construção. Selecione um local de registro do contêiner, como
IBM Registry Dallas. Se o seu registro for privado, a configuração de acesso a ele deverá ser feita. - Selecione um segredo de registro existente ou crie um novo. Se você está construindo sua imagem para uma instância do Container Registry que está em sua conta, é possível selecionar o
Code Engine managed secrete deixar o Code Engine criar e gerenciar o segredo para você. - Selecione um namespace, um nome e uma tag para sua imagem. Se você está construindo sua imagem para uma instância do Container Registry que está em sua conta, é possível selecionar um namespace existente ou deixar o Code Engine criar e gerenciar o namespace para você.
- Clique em Pronto.
- Modifique os valores padrão de variáveis de ambiente ou configurações de tempo de execução. Para obter mais informações sobre essas opções, consulte Opções para criar e executar uma tarefa.
- Clique em Criar.
- Após o envio de sua execução de compilação, a imagem do contêiner construída é enviada para o Container Registry e, em seguida, sua tarefa pode referenciar a imagem construída. Quando a tarefa estiver pronto, clique em Enviar tarefa para executar a tarefa com base na configuração atual.
As execuções de construção que completam são finalmente excluídas automaticamente. Quando sua execução de construção é baseada na configuração de construção, esta execução de construção é excluída após 3 horas 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 48 horas.
Agora que você criou sua tarefa e a executou, é possível visualizar detalhes sobre sua configuração de tarefa e execuções de tarefa por meio da página da tarefa.
Precisa de ajuda? Confira Dicas de resolução de problemas para construções.
Criando sua tarefa por meio do código-fonte do repositório com a CLI
É possível criar sua tarefa diretamente por meio do código-fonte do repositório com a CLI. Use o comando job create para construir uma imagem por meio da origem do repositório Git e definir a configuração para a
tarefa.
Antes de Iniciar
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
Neste cenário, o Code Engine constrói uma imagem por meio da origem do repositório Git, automaticamente faz upload da imagem para o registro de contêiner e, em seguida, cria sua configuração de tarefa para referenciar essa imagem construída
com o comando job create. É necessário fornecer apenas um nome para a tarefa e a URL para o repositório Git se a imagem deve estar localizada em uma conta do IBM Cloud Container Registry. Neste caso, o Code Engine
gerencia o namespace para você. No entanto, se quiser usar um registro de contêiner diferente, será necessário especificar a imagem e um segredo de registro para esse registro de contêiner. Use o comando ibmcloud ce jobrun submit para executar a tarefa que referencia a imagem construída. Para uma listagem completa de opções, veja os comandos ibmcloud ce job create e
ibmcloud ce jobrun submit.
Para obter informações sobre permissões necessárias para acessar registros de imagens, consulte Configurando autoridades para registros de imagens.
-
Use o comando
job createpara criar a tarefamyjob-repopara referenciar uma imagem que é construída por meio da origem de construçãohttps://github.com/IBM/CodeEngine. Este comando constrói automaticamente a imagem e faz upload da imagem para um namespace do IBM Cloud® Container Registry em sua conta e as execuções de tarefa para essa tarefa referenciam a imagem construída. Ao especificar a opção--build-context-dir, a construção usa a origem no diretóriohelloworld. Este comando de exemplo usa a estratégiadockerfilepadrão e o tamanho de construçãomediumpadrão. Como o nome da ramificação do repositório não é especificado com a opção--build-commit, o Code Engine usa automaticamente a ramificação padrão do repositório especificado. Ao incluir a opção--wait, isso especifica que a criação de tarefa espere a conclusão da construção da imagem.ibmcloud ce job create --name myjob-repo --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld --waitSaída de exemplo
Creating job 'myjob-repo'... Submitting build run 'myjob-repo-run-220420-15590196'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-repo-run-220420-15590196' to check the build run status. OKComo especificamos a opção
--wait, a saída do comandojob createfornece informações sobre a progressão da execução da compilação antes de o trabalho ser criado.Neste exemplo, a imagem construída é transferida por upload para o namespace do
ce--abcde-glxo4kabcdeno Container Registry.A tabela a seguir resume as opções que são usadas com o comando
job createneste exemplo. Consulte o comandoibmcloud ce job createpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO nome da tarefa. Use um nome que seja exclusivo dentro do projeto. Esse valor é necessário.
- O nome deve começar e terminar com um caractere alfanumérico minúscula.
- O nome deve ter 63 caracteres ou menos e pode conter letras, números e hifens (-).
--build-sourceA URL do repositório Git que contém o seu código-fonte; por exemplo, https://github.com/IBM/CodeEngine.--build-context-dirO diretório no repositório que contém o arquivo buildpacks ou o Dockerfile. Este valor é opcional. --waitEspecifica esperar que a construção da imagem seja concluída antes da criação da tarefa. -
(opcional) Use o comando
job getpara exibir informações sobre a tarefa, incluindo informações sobre a construção.ibmcloud ce job get --name myjob-repoSaída de exemplo
[...] Name: myjob-repo ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo Resource Allocation: CPU: 1 Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 Build Information: Build Run Name: myjob-repo-run-220420-15590196 Build Type: git Build Strategy: dockerfile-medium Timeout: 600 Source: https://github.com/IBM/CodeEngine Context Directory: helloworld Dockerfile: Dockerfile Build Run Summary: Succeeded Build Run Status: Succeeded Build Run Reason: All Steps have completed executing Run 'ibmcloud ce buildrun get -n myjob-repo-run-220420-15590196' for details. -
Agora que a tarefa foi criada e sua imagem construída, execute a tarefa que referencia a imagem construída. Este comando de exemplo executa a execução de tarefa
myjobrun-repocom base na configuração de tarefamyjob-repo.ibmcloud ce jobrun submit --name myjobrun-repo --job myjob-repo -
(opcional) Visualize os detalhes da execução de tarefa.
ibmcloud ce jobrun get --name myjobrun-repoSaída de exemplo
Getting jobrun 'myjobrun-local'... Getting instances of jobrun 'myjobrun-local'... Getting events of jobrun 'myjobrun-local'... Run 'ibmcloud ce jobrun events -n myjobrun-local' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun-local' to follow the logs of the job run instances. OK Name: myjobrun-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Job Ref: myjob-repo Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 90s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 101s 101s Running True 91s 91s Complete True 90s 90s Events: Type Reason Age Source Messages Normal Updated 91s (x4 over 102s) batch-job-controller Updated JobRun "myjobrun-repo" Normal Completed 91s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-repo-0-0 0/1 Succeeded 0 102s
Agora que a tarefa foi criada e executada por meio do código-fonte do repositório, é possível atualizar a tarefa para atender às suas necessidades usando o comando ibmcloud ce job update.
Para obter mais informações sobre a atualização de tarefas, consulte Atualizando uma tarefa. Se você deseja atualizar a origem para usar com a tarefa, deve fornecer a opção --build-source no comando job update.
Quando o seu trabalho é criado a partir de código-fonte do repositório ou de origem local com a CLI, a execução de construção resultante não é baseada em uma configuração de construção. As execuções de construção que completam são finalmente excluídas automaticamente. As execuções de construção que não são baseadas em uma configuração de construção são excluídas 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.
Próximas etapas
-
Depois de criar sua tarefa, envie-a para executá-la. Consulte Executar uma tarefa. É possível executar sua tarefa várias vezes.
-
Depois de executar sua tarefa, para visualizar detalhes da sua tarefa e das execuções de tarefa, consulte Acessar detalhes da tarefa.
-
Agora que sua tarefa foi criada, considere tornar suas tarefas orientadas para evento. Ao usar assinaturas de evento, é possível acionar suas tarefas por meio de planejamentos periódicos ou configurar sua tarefa para reagir a eventos como uploads de arquivo.
-
É possível atualizar sua tarefa e seu código referenciado de qualquer uma das maneiras a seguir, independentemente de como você criou ou atualizou previamente a sua tarefa.
-
Se você tiver uma imagem de contêiner, de acordo com o padrão Open Container Initiative(OCI), precisará fornecer apenas uma referência à imagem, que aponta para o local do registro do contêiner ao criar (ou atualizar) o trabalho. Você pode criar (ou atualizar) seu trabalho a partir de imagens em um registro público ou privado e, em seguida, acessar a imagem referenciada na execução do trabalho.
Se você criou o seu job usando o comando
job createe especificou a opção--build-sourcepara construir a imagem do container a partir de origem local ou repositório, e deseja alterar o seu job para apontar para uma imagem de container diferente, deve-se primeiro remover a associação da construção a partir do seu job. Por exemplo, executeibmcloud ce job update -n JOB_NAME --build-clear. Depois de remover a associação da construção a partir do seu trabalho, você pode atualizar o trabalho para referencia uma imagem diferente. -
Se você está começando com código-fonte que reside em um repositório Git, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e implemente (ou atualize) o app com uma operação única. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Criando uma tarefa por meio do código-fonte do repositório. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de criar (ou atualizar) sua tarefa e executá-la.
-
Se você está começando com código-fonte que reside em uma estação de trabalho local, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e da criação da tarefa com um comando da CLI único. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Criando sua tarefa por meio do código-fonte local com a CLI. Se quiser ter mais controle sobre a criação da imagem, poderá optar por criar a imagem com Code Engine antes de criar (ou atualizar) o trabalho e executá-lo.
Por exemplo, você pode optar por deixar que o Code Engine cuide da construção de sua origem local enquanto você cuida do desenvolvimento de sua origem para a tarefa. Em seguida, após o amadurecimento da imagem, é possível atualizar a tarefa para referenciar a imagem específica que desejar. É possível repetir esse processo conforme necessário.
Ao executar sua tarefa atualizada, a versão mais recente de sua imagem de contêiner referenciada é usada para a execução da tarefa, a menos que uma tag seja especificada para a imagem. Se uma tag for especificada para a imagem, a imagem marcada será usada para a execução da tarefa.
-
Procurando mais exemplos de código? Confira as Amostras para IBM Cloud Code Engine GitHub repo.