Como testar a imagem do contêiner localmente

Durante o desenvolvimento, é possível executar e testar a imagem de contêiner localmente, antes da implantação. É possível usar o Cloud Code ou o Docker instalado localmente (em inglês) para executar e testar no local com acesso aos serviços do Google Cloud.

Como executar em um emulador do Cloud Run para Anthos no Google Cloud

O plug-in do Cloud Code para os ambientes de desenvolvimento integrado do VS Code e da JetBrains (últimos dois links em inglês) permite executar e depurar localmente a imagem de contêiner em um emulador do Cloud Run for Anthos no Google Cloud no ambiente de desenvolvimento integrado. O emulador permite que você configure um ambiente que represente seu serviço em execução no Cloud Run para Anthos no Google Cloud.

É possível configurar propriedades como alocação de memória e CPU, especificar variáveis de ambiente e definir conexões de banco de dados do Cloud SQL.

  1. Instale o Cloud Code em um ambiente de desenvolvimento integrado do VS Code ou da JetBrains (links em inglês).
  2. Siga as instruções para desenvolver e depurar localmente no ambiente de desenvolvimento integrado.

Como executar localmente usando o Docker

Para testar sua imagem de contêiner localmente usando o Docker, siga estas etapas:

  1. 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 de contêiner. Por exemplo, gcr.io/myproject/my-image:latest.

    A variável de ambiente PORT especifica a porta que o aplicativo usará para detectar solicitações HTTP ou HTTPS. Esse é um requisito do contrato do ambiente de execução do contêiner. Neste exemplo, usamos a porta 8080.

  2. Abra http://localhost:9090 no seu navegador.

Se você tem pouca experiência trabalhando com contêineres, consulte o guia de primeiros passos com o Docker. Para saber mais sobre os comandos do Docker, consulte a documentação do Docker.

Como executar localmente usando o Docker com acesso aos serviços do Google Cloud

Se você estiver usando as bibliotecas cliente do Google Cloud para integrar o aplicativo aos serviços do GCP e ainda não tiver protegido esses serviços para controlar o acesso externo, configure o contêiner local para autenticar com os serviços do Google Cloud usando o Application Default Credentials.

Para executar localmente:

  1. Consulte Primeiros passos da autenticação para ver instruções sobre como gerar, recuperar e configurar as credenciais da conta de serviço.

  2. As sinalizações de execução do Docker a seguir injetam as credenciais e a configuração do seu sistema local no contêiner local:

    1. Use a sinalização --volume (-v) para injetar o arquivo de credencial no contêiner (presumindo que você já tenha definido a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS na máquina):
      -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
    2. Use a sinalização --environment (-e) para definir a variável GOOGLE_APPLICATION_CREDENTIALS no contêiner:
      -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
  3. Como opção, 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

    Observe que o caminho

    /tmp/keys/FILE_NAME.json
    mostrado no exemplo acima é um local razoável para colocar suas credenciais no contêiner.

    No entanto, outros locais de diretório também funcionarão. O requisito crucial é que a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS precisa corresponder ao local de ativação da vinculação dentro do contêiner.

    Além disso, com alguns serviços do Google Cloud, convém usar uma configuração alternativa para isolar a solução de problemas local do desempenho de produção e dos dados.

A seguir

Para saber como implantar seus contêineres criados, veja Como implantar serviços.