Implementando o app por meio do código-fonte do repositório

É possível implementar o aplicativo 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.

Implementando o app do código-fonte do repositório por meio do console

É possível implementar seu aplicativo diretamente 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.

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 fazer upload de imagens para uma conta diferente do Container Registry ou para uma conta privada do Docker Hub, consulte Acessando registros de contêiner.

Para obter mais informações sobre as permissões necessárias para acessar registros de imagens, consulte Configurando autoridades para registros de imagens

  1. Abra o console Code Engine.
  2. Selecione “Começar a criar ”.
  3. 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 implementar um app.
  4. Selecione Aplicativo.
  5. Insira um nome para o aplicativo. Use um nome para seu aplicativo que seja exclusivo dentro do projeto.
  6. Selecione “Compilar imagem de contêiner a partir do código-fonte ”.
  7. Clique em Especificar detalhes da construção.
  8. 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, selecione None para 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.
  9. 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.
  10. Selecione um local de registro de contêiner, como IBM Registry Dallas para especificar onde armazenar a imagem de sua saída de construção. Se o seu registro for privado, a configuração de acesso a ele deverá ser feita.
  11. Forneça informações de registro sobre onde armazenar a imagem de sua saída de construção. Selecione um segredo do Registro já 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 secret e deixar o Code Engine criar e gerenciar o segredo para você.
  12. 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ê.
  13. Clique em Pronto.
  14. Modifique quaisquer configurações de tempo de execução ou variáveis de ambiente para seu app. Para obter mais informações sobre essas opções, consulte Opções para visibilidade de terminais de apps e Opções para implementar um app.
  15. Clique em Criar.
  16. Após o envio da sua execução de construção, a imagem de contêiner construída é enviada para o Container Registry e, em seguida, seu aplicativo a extrai e implementa para você. Após o status do aplicativo mudar para Pronto, será possível testar o aplicativo. Clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo.

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 compilação não for bem-sucedida, ela será excluída após 48 horas.

Agora que você implementou seu aplicativo, é possível visualizar informações sobre as revisões do aplicativo e quaisquer instâncias em execução, além de detalhes de configuração.

Implementando o app por meio do código-fonte do repositório com a CLI

É possível implementar o aplicativo diretamente por meio do código-fonte do repositório com a CLI. Use o comando app create para ambos, construir uma imagem por meio de sua origem de repositório Git e implementar o aplicativo para referenciar essa imagem construída.

Antes de Iniciar

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 e implementa o app para referenciar esta imagem construída. É necessário fornecer apenas um nome para o app e a URL para o repositório Git se a imagem deve ser localizada em uma conta do IBM Cloud® Container Registry. Neste caso, o Code Engine gerencia o namespace para você. No entanto, se você quiser usar um registro de contêineres diferente, será necessário especificar a imagem e um segredo de registro para esse registro de contêineres. Para obter uma listagem completa de opções, consulte o comando ibmcloud ce app create.

Para obter mais informações sobre as permissões necessárias para acessar registros de imagens, consulte Configurando autoridades para registros de imagens

O comando application create de exemplo a seguir cria e implementa o app myapp, que faz referência a uma imagem que é construída por meio da origem de construção https://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 o aplicativo referencia esta imagem construída. Ao especificar a opção --build-context-dir, a construção usa a origem no diretório helloworld. Este comando de exemplo 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 --build-commit, o Code Engine usa automaticamente a ramificação padrão do repositório especificado.

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

Saída de exemplo

Creating application 'myapp'...
Submitting build run 'myapp-run-220411-13abcdefg'...
Creating image 'private.us.icr.io/ce--abcde-4svg40kna19/app-myapp:220411-1756-if8jv'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220411-13abcdefg' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK
https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud

Observe que a saída do application create comando, que fornece informações sobre o andamento da execução da compilação antes que o aplicativo seja criado e implantado.

Neste exemplo, a imagem construída é transferida por upload para o namespace do ce--abcde-4svg40kna19 no Container Registry.

A tabela a seguir resume as opções que são usadas com o comando app create neste exemplo. Consulte o comando ibmcloud ce app 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 do aplicativo. 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 63 caracteres ou menos e pode conter letras, números e hifens (-).
--build-source A URL do repositório Git que contém o seu código-fonte; por exemplo, https://github.com/IBM/CodeEngine.
--build-context-dir O diretório no repositório que contém o arquivo buildpacks ou o Dockerfile. Este valor é opcional.

A saída a seguir mostra o resultado do comando application get para este exemplo, incluindo informações sobre a construção.

Saída de exemplo

[...]
Name:          myapp  
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
URL:                https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
Console URL:        https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
Status Summary:  Application deployed successfully
Environment Variables:    
    Type     Name             Value  
    Literal  CE_API_BASE_URL  https://api.private.us-south.codeengine.cloud.ibm.com
    Literal  CE_APP           myapp  
    Literal  CE_DOMAIN        us-south.codeengine.appdomain.cloud  
    Literal  CE_PROJECT_ID    abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Literal  CE_REGION        us-south  
    Literal  CE_SUBDOMAIN     abcdabcdab
Image:                  private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj
Resource Allocation:
  CPU:                1
  Ephemeral Storage:  400M
  Memory:             4G
Registry Secrets:
  ce-auto-icr-private-us-south
Revisions:
  myapp-00001:
    Age:                23m
    Latest:             true
    Traffic:            100%
    Image:              private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj (pinned to 86944c)  
    Running Instances:  0
Runtime:
  Concurrency:    100
  Maximum Scale:  10
  Minimum Scale:  0
  Timeout:        300
Build Information:
  Build Run Name:     myapp-run-220414-161009244
  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 myapp-run-220414-161009244' for details.
[...]

Agora que o app foi criado e implementado por meio do código-fonte do repositório, é possível atualizar o app para atender às suas necessidades usando o comando ibmcloud ce app update. Para obter mais informações sobre a atualização de apps, consulte Atualizando seu app. Se você deseja atualizar a origem para usar com o app, deve fornecer a opção --build-source no comando application update.

Quando o seu app é implementado 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

Após a implementação do app, também é possível atualizar o app implementado e seu código referenciado usando qualquer uma das maneiras a seguir, independentemente de como você criou ou atualizou previamente seu app:

  • Se você tiver uma imagem de contêiner, de acordo com o padrão da Open Container Initiative(OCI), basta fornecer apenas uma referência à imagem, que aponte para o local do seu registro de contêineres ao implantar seu aplicativo. Você pode implementar o seu app com uma imagem em um registro público ou registro privado.

    Se você criou o seu app usando o comando app create e especificou a opção --build-source para construir a imagem do container a partir de origem local ou repositório, e deseja alterar seu app para apontar para uma imagem de contêiner diferente, deve-se primeiro remover a associação da construção a partir do seu app. Por exemplo, execute ibmcloud ce application update -n APP_NAME --build-clear. Depois de remover a associação da construção a partir do seu app, você pode atualizar o app 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 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 Implementando seu app 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 implementar seu app.

  • 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 implemente o app 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 Implementando seu app por meio do código-fonte local com a CLI. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de implementar seu app.

    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 o app. Em seguida, após o amadurecimento da imagem, é possível atualizar o app implementado para referenciar a imagem específica que desejar. É possível repetir esse processo conforme necessário.

Ao implementar seu app atualizado, a versão mais recente de sua imagem de contêiner referenciada é transferida por download e implementada, 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 implementação.

Procurando mais exemplos de código? Confira os exemplos no repositório “ IBM Cloud Code Engine ” GitHub.