Implementando seu app por meio de código-fonte local com a CLI
É possível implementar seu aplicativo diretamente por meio do código-fonte em sua estação de trabalho local com a CLI do IBM Cloud® Code Engine. Use o comando app create para ambos, construir uma imagem por meio de
sua origem local e implementar seu aplicativo para referenciar essa imagem construída.
Ao enviar uma construção que extrai código de um diretório local, seu código-fonte é empacotado em um archive. O Code Engine automaticamente transfere por upload a imagem para um namespace do IBM Cloud® Container Registry em sua conta e, em seguida,
cria e implementa seu app para referenciar esta imagem construída. 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.
Para este cenário, é necessário fornecer apenas um nome para o app e o caminho para a origem local. Para obter uma listagem completa de opções, consulte o comando ibmcloud ce app create.
Para obter informações sobre permissões necessárias para acessar registros de imagens, consulte Configurando autoridades para registros de imagens.
É 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 GitHub.gitignore.
O IBM Cloud® Container Registry é necessário para este cenário.
Antes de Iniciar
- Configure o seu ambiente da CLI do Code Engine.
- Criar e trabalhar com um projeto.
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, crie e implemente o appmyapp-local, que usa uma imagem que é construída por meio da origemCodeEngine\helloworldem sua estação de trabalho local. 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ê.ibmcloud ce application create --name myapp-local --build-source .O
.indica que a origem de construção está localizada em seu diretório atualmente em funcionamento.Saída de exemplo
Creating application 'myapp-local'... Packaging files to upload from source path '.'... Submitting build run 'myapp-local-run-220414-171750199'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local:220414-2117-rdaga'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myapp-local-run-220414-171750199' to check the build run status. Waiting for application 'myapp-local' to become ready. Configuration 'myapp-local' 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-local' to check the application status. OK https://myapp-local.glxo4kabcde.us-south.codeengine.appdomain.cloudObserve que a saída do comando
application createfornece informações sobre a progressão da execução da compilação antes de o aplicativo ser criado e implantado.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
app createneste exemplo. Consulte o comandoibmcloud ce app createpara obter mais informações sobre ele e as opções que ele oferece.Descrição do comando Opção Descrição --nameO 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-sourceO caminho para a origem local. -
Use o comando
application getpara exibir informações sobre o seu app, incluindo informações sobre a construção.ibmcloud ce application get --name myapp-localSaída de exemplo
[...] Name: myapp-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 URL: https://myapp-local.Sta.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp-local.glxo4kabcde.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp-local/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--abcde-glxo4kabcde/app-myapp-local:220414-2010-sqsoj Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Revisions: myapp-local-00001: Age: 23m Latest: true Traffic: 100% Image: private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local: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-local-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-local-run-220414-161009244' for details. [...]
Agora que o seu app é criado e implementado por meio do código-fonte local, é 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.
Em vez de construir sua imagem por meio da origem local e implementar o seu app com um único comando, é possível optar por construir por meio da origem local primeiro antes de implementar seu app. Consulte Criando uma Configuração de Construção que Puxa a Origem de uma Estação de Trabalho Local
Quando seu app é implementado a partir de origem local ou de código-fonte do repositório a partir da 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, 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 createe especificou a opção--build-sourcepara 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.