Implementando cargas de trabalho de app por meio de imagens no IBM Cloud Container Registry
Implemente seu app com o Code Engine que usa uma imagem no IBM Cloud® Container Registry. É possível criar um app por meio do console ou com a CLI.
Antes de Iniciar
-
Deve-se ter uma imagem no IBM Cloud® Container Registry. Para obter mais informações, consulte Introdução ao Container Registry. Ou, é possível construir uma imagem por meio da origem do repositório ou da origem do local.
-
Verifique se é possível acessar o registro. Consulte Configurando autoridades para registros de contêiner.
Interessado em configurar seu projeto de forma que todos os usuários do projeto possam armazenar e acessar imagens no Container Registry sem ter que criar manualmente segredos de registro? Com permissões suficientes, é possível configurar esse acesso de registro padrão por local (região). Se você não tiver permissões suficientes para executar essas ações, será possível usar essa página para ajudar a entender as permissões necessárias. Consulte Definindo Configurações do Projeto.
Implementando um app que referencia uma imagem no Container Registry com o console
Implemente um aplicativo que usa uma imagem no Container Registry usando o console do Code Engine.
O Code Engine pode extrair imagens automaticamente de um namespace do Container Registry em sua conta. Para extrair imagens de uma conta diferente do Container Registry ou de uma conta privada do Docker Hub, consulte Implementando cargas de trabalho de aplicativo por meio de imagens em um registro privado.
- Abra o console Code Engine.
- Selecione Vamos.
- Selecione Aplicativo.
- Insira um nome do aplicativo, por exemplo,
helloapp
. Use um nome para seu aplicativo que seja exclusivo dentro do projeto. - Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Deve-se ter um projeto selecionado para implementar um app.
- Selecione Imagem de contêiner e clique em Configurar imagem.
- Selecione um local de registro do contêiner, como "
IBM Registry Dallas
. - Selecione
Code Engine managed secret
para Segredo de registro Como esse exemplo usa uma imagem em um espaço de nome Container Registry na sua conta, Code Engine pode criar e gerenciar automaticamente o segredo do registro para você. - Selecione um namespace existente e o nome da imagem no registro para o app Code Engine fazer referência. Por exemplo, selecione
mynamespace
e selecione a imagemhello_repo
nesse namespace. - Selecione um valor para Tag; por exemplo,
latest
. - Clique em Pronto.
- 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.
- Clique em Criar para criar o aplicativo.
- 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.
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.
Se você quiser incluir o acesso ao registro em uma instância do Container Registry que não está em sua conta, consulte Incluindo acesso em um Container Registry.
Implementando um app com uma imagem no Container Registry com a CLI
Implemente um aplicativo que use uma imagem no IBM Cloud® Container Registry com a CLI com o comando ibmcloud ce app create
. Para obter uma listagem completa de opções, consulte o comando ibmcloud ce app create
.
Antes de Iniciar
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
- Antes de poder trabalhar com um aplicativo Code Engine que referencia uma imagem no Container Registry, primeiro deve-se incluir o acesso no registro para que o Code Engine possa extrair a imagem quando o app for implementado. Para obter informações sobre permissões necessárias para acessar registros de imagens, consulte Configurando autoridades para registros de imagens.
-
Para incluir acesso ao Container Registry, crie uma chave de API do IAM. Para criar uma chave de API do IBM Cloud IAM com a CLI, execute o comando
iam api-key-create
. Por exemplo, para criar uma chave de API chamada 'cliapikey
com uma descrição de 'My CLI API key
e salvá-la em um arquivo chamado 'key_file
, execute o seguinte comando:ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_file
Se você optar por não salvar sua chave em um arquivo, deverá registrar a chave de API que é exibida ao criá-la. Não será possível recuperá-la mais tarde.
-
Depois de criar sua chave de API, inclua o acesso de registro no Code Engine. Para incluir acesso ao Container Registry com a CLI, use o comando
ibmcloud ce secret create --format registry
para criar um segredo de registro. Por exemplo, o comando a seguir cria acesso ao registro para uma instância Container Registry chamada 'myregistry
. Observe que mesmo que as opções--server
e--username
sejam especificadas no comando de exemplo, o valor padrão da opção--server
seráus.icr.io
e a opção--username
será padronizada comoiamapikey
quando o servidor forus.icr.io
.ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEY
Saída de exemplo
Creating registry secret 'myregistry'... OK
-
Crie seu app e referencie a imagem
hello_repo
no Container Registry. Por exemplo, use o comandoibmcloud ce app create
para criar o appmyhelloapp
para referenciar ous.icr.io/mynamespace/hello_repo
usando as informações de acesso domyregistry
.ibmcloud ce app create --name myhelloapp --image us.icr.io/mynamespace/hello_repo --registry-secret myregistry
O formato do nome da imagem para esse aplicativo é
REGISTRY/NAMESPACE/REPOSITORY:TAG
, em queREGISTRY
eTAG
são opcionais. SeREGISTRY
não for especificado, o padrão serádocker.io
. SeTAG
não for especificado, o padrão serálatest
. -
Depois que seu app for implementado, será possível acessá-lo. Para obter a URL de seu app, execute
ibmcloud ce app get --name myhelloapp --output url
. Ao executar curl no appmyhelloapp
,Hello World
é retornado.curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
Próximas etapas
-
Após a implementação do app, acesse-o por meio de uma URL.
-
É possível criar um mapeamento de domínio customizado e designá-lo ao seu app Para obter mais informações sobre a implementação de apps em diversas regiões com um nome de domínio customizado, consulte Configurando um aplicativo altamente disponível
-
Agora que seu aplicativo está implantado, considere a possibilidade de torná-lo orientado por eventos. Usando assinaturas de eventos, é possível acionar seus apps por planejamentos periódicos ou configurar seu app para reagir a eventos como uploads de arquivos ou mensagens doKafka.
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 Open Container Initiative(OCI), precisará fornecer apenas uma referência à imagem, que aponta para o local do registro do contêiner ao implantar o 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, executeibmcloud 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 as Amostras para IBM Cloud Code Engine GitHub repo.