Implementando cargas de trabalho de app por meio de imagens em um registro privado

Implemente seu app com o Code Engine que usa uma imagem em um registro privado como o Docker Hub privado. É possível criar um app por meio do console ou com a CLI.

Antes de Iniciar

  • Para extrair imagens de um registro privado, deve-se primeiro criá-lo. Por exemplo, para criar um registro privado do Hub do Docker, consulte a documentação do Hub do Docker.
  • Depois de criar um registro privado, envie uma imagem para ele.
  • Também é possível configurar um token de acesso. Ao usar um token de acesso, é possível conceder e revogar o acesso à sua conta do Docker Hub mais facilmente, sem a necessidade de mudança de senha. Para obter mais informações sobre tokens de acesso e o Docker Hub, consulte Criar e gerenciar tokens de acesso.

Implementando um app que referencia uma imagem em um registro privado com o console

Implemente um aplicativo que use uma imagem em um registro privado com o console do Code Engine.

Antes de poder trabalhar com um aplicativo Code Engine que referencie uma imagem em um registro privado, deve-se primeiro incluir o acesso ao registro, extrair a imagem e, em seguida, implementá-lo.

  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. Deve-se ter um projeto selecionado para implementar um app.
  4. Selecione Aplicativo.
  5. Insira um nome do aplicativo, por exemplo, helloapp. Use um nome para seu aplicativo que seja exclusivo dentro do projeto.
  6. Selecione “Usar uma imagem de contêiner existente ” e clique em “Configurar imagem ”.
  7. Insira docker.io para Servidor de registro.
  8. Para o segredo do Registro, selecione “Criar segredo do Registro ”.
  9. Na página “Criar segredo do Registro”, escolha sua fonte do Registro. Por exemplo, Docker Hub.
  10. Insira um nome de usuário. Para o Docker Hub, ele é o seu ID do Docker.
  11. Insira o token de acesso. Para o Docker Hub, é possível usar a senha do Docker Hub ou um token de acesso. Para obter mais informações sobre tokens de acesso e o Docker Hub, consulte Criar e gerenciar tokens de acesso.
  12. Clique em “Criar” para adicionar um segredo do Registro para Code Engine.
  13. Na página “Configurar imagem”, o segredo do Registro que foi adicionado aparece na lista. Selecione a chave do Registro correspondente à sua imagem.
  14. Selecione o namespace e o nome da imagem no Docker Hub para o app Code Engine para referência. Por exemplo, selecione mynamespace e selecione a imagem hello_repo nesse namespace.
  15. Selecione um valor para Tag; por exemplo, latest.
  16. Clique em Pronto. Você selecionou a sua imagem no registro para referenciá-la no seu app.
  17. 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.
  18. Na página Criar aplicativo, clique em Criar.
  19. 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.

Para incluir o acesso de registro antes de criar um app, consulte Incluindo o acesso a um registro de contêiner privado.

Implementando um app com uma imagem de um registro privado com a CLI

Implemente um aplicativo que usa uma imagem em um registro de contêiner com a CLI com o comando ibmcloud ce app create.

Antes de Iniciar

Antes de poder trabalhar com um aplicativo Code Engine que referencie uma imagem em um registro privado, deve-se primeiro incluir o acesso ao registro, extrair a imagem e, em seguida, implementá-lo.

  1. Para extrair imagens de um registro privado, deve-se primeiro criá-lo. Por exemplo, para criar um registro privado do Hub do Docker, consulte a documentação do Hub do Docker. Depois de criar um registro privado, envie uma imagem para ele. Também é possível configurar um token de acesso. Ao usar um token de acesso, é possível conceder e revogar o acesso à sua conta do Docker Hub mais facilmente, sem a necessidade de mudança de senha. Para obter mais informações sobre tokens de acesso e o Docker Hub, consulte Criar e gerenciar tokens de acesso.

  2. Inclua acesso em seu registro privado para extrair imagens. Para incluir o acesso a um registro privado 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 de um hub do Docker chamado privatedocker, que está em 'https://index.docker.io/v1/', e utiliza seu nome de usuário e senha.

    ibmcloud ce secret create --format registry --name privatedocker --server 'https://index.docker.io/v1/' --username <Docker_User_Name> --password <Password>
    

    Saída de exemplo

    Creating registry secret 'privatedocker'...
    OK
    
  3. Crie seu app e referencie a imagem em seu registro privado do Docker Hub. Por exemplo, crie o app myhelloapp para referenciar o docker.io/privaterepo/helloworld usando as informações de acesso do privatedocker.

    ibmcloud ce app create --name myhelloapp --image docker.io/privaterepo/helloworld --registry-secret privatedocker
    

    O formato do nome da imagem para esse aplicativo é REGISTRY/NAMESPACE/REPOSITORY:TAG, em que REGISTRY e TAG são opcionais. Se REGISTRY não for especificado, o padrão será docker.io. Se TAG não for especificado, o padrão será latest.

  4. 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 app myhelloapp, Hello World é retornado.

    curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
    

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.