
Queríamos fazer uma mudança rápida em um aplicativo GAE em execução para permitir o registro de consultas para rastrear um bug.
Fazendo SSH em uma instância em execução, pode ser difícil encontrar onde o código do aplicativo está armazenado devido ao uso do docker.
Enquantoestas instruçõespermitem que você inicie um shell na instância do contêiner vim
ou similar não está disponível no contêiner, portanto não é possível modificar o código.
Abaixo está como descobrimos onde encontrar o aplicativo.
Responder1
No console GAE, vá ao menu lateral e escolhaApp Engine -> Instances
Se você não estiver tentando se conectar ao seu aplicativo padrão, altere o menu suspenso no canto superior esquerdo.
Em seguida, clique no botão SSH.
As imagens do Docker são armazenadas, /var/lib/docker/overlay2
mas há ummuitodeles.
Para encontrar aquele que contém seu aplicativo, escolha um nome de arquivo que seja exclusivo para o seu projeto, por exemplo, escolhemos messageProcessor.js
e pesquise todas as imagens dele.
(O usuário SSH não tem permissão, então você precisará sudo para executar find nessa pasta)
sudo find /var/lib/docker/overlay2 -name messageProcessor.js
Esperamos que você obtenha apenas um resultado, algo assim:
/var/lib/docker/overlay2/14b22c856283a3231a55c79f54d298acb9750fc886037533ef830acf55a10116/merged/app/jobs/messageProcessor.js
Agora que você sabe onde encontrar seu aplicativo, pode editar um arquivo:
sudo vi /var/lib/docker/overlay2/14b22c856283a3231a55c79f54d298acb9750fc886037533ef830acf55a10116/merged/app/some/file/in/my/app.js
Em seguida, reinicie seu aplicativo para que a alteração tenha efeito
# ps -ef | grep node
root 11152 11151 0 Sep13 ? 00:00:00 node /app/index.js
# sudo kill <the pid of your process>