Durante o desenvolvimento, pode executar e testar a imagem do contentor localmente antes da implementação. Pode usar o Cloud Code ou o Docker instalado localmente para executar e testar localmente, incluindo a execução local com acesso aos Google Cloud serviços.
Execução num emulador do Knative Serving
O plug-in Cloud Code para o VS Code e os IDEs JetBrains permite-lhe executar e depurar localmente a sua imagem de contentor num emulador do Knative Serving no seu IDE. O emulador permite-lhe configurar um ambiente representativo do seu serviço em execução no Knative Serving.
Pode configurar propriedades como a atribuição de CPU e memória, especificar variáveis de ambiente e definir ligações à base de dados do Cloud SQL.
- Instale o Cloud Code para o VS Code ou um IDE da JetBrains.
- Siga as instruções para desenvolver e depurar localmente no seu IDE.
- VS Code: desenvolvimento e depuração locais
- IntelliJ: desenvolvimento e depuração locais
Executar localmente com o Docker
Para testar a imagem de contentor localmente com o Docker:
Use o comando do Docker:
PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
.A variável de ambiente
PORT
especifica a porta que a sua aplicação vai usar para ouvir pedidos HTTP ou HTTPS. Este é um requisito do Container Runtime Contract. Neste exemplo, usamos a porta 8080.Abra http://localhost:9090 no navegador.
Se está a trabalhar com contentores pela primeira vez, recomendamos que reveja o guia de introdução ao Docker. Para saber mais sobre os comandos do Docker, consulte a documentação do Docker.
Execução local com o Docker com acesso aos serviços Google Cloud
Se estiver a usar Google Cloud bibliotecas cliente para integrar a sua aplicação com Google Cloud serviços e ainda não tiver protegido esses serviços para controlar o acesso externo, pode configurar o seu contentor local para fazer a autenticação com Google Cloud serviços através de uma chave de conta de serviço.
Para executar localmente:
Consulte o artigo Chave da conta de serviço para obter ajuda na configuração das suas credenciais.
As seguintes flags de execução do Docker injetam as credenciais e a configuração do seu sistema local no contentor local:
- Use a flag
--volume
(-v
) para injetar o ficheiro de credenciais no contentor (pressupõe que já definiu a variável de ambienteGOOGLE_APPLICATION_CREDENTIALS
no seu computador):-v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
- Use o sinalizador
--environment
(-e
) para definir a variávelGOOGLE_APPLICATION_CREDENTIALS
no contentor:-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
- Use a flag
Opcionalmente, use este comando
run
do Docker totalmente configurado:PORT=8080 && docker run \ -p 9090:${PORT} \ -e PORT=${PORT} \ -e K_SERVICE=dev \ -e K_CONFIGURATION=dev \ -e K_REVISION=dev-00001 \ -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \ -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \ IMAGE_URL
Tenha em atenção que o caminho
apresentado no exemplo acima é uma localização razoável para colocar as suas credenciais no contentor./tmp/keys/FILE_NAME.json
No entanto, outras localizações de diretórios também funcionam. O requisito crucial é que a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
tem de corresponder à localização de montagem de ligação no contentor.Tenha também em atenção que, com alguns Google Cloud serviços, pode querer usar uma configuração alternativa para isolar a resolução de problemas local do desempenho e dos dados de produção.
O que se segue?
Para saber como implementar os contentores criados, siga as instruções em Implementar serviços.