
バグを追跡するためにクエリのログ記録を有効にするために、実行中の GAE アプリケーションに簡単な変更を加えたいと考えました。
実行中のインスタンスに SSH 接続する場合、Docker を使用しているため、アプリ コードが保存されている場所を見つけるのが難しくなることがあります。
その間これらの指示コンテナインスタンス内でシェルを起動できるようにする、vim
またはコンテナ内で同様の機能が利用できないため、コードを変更することはできません。
アプリがどこにあるか調べた方法は以下の通りです。
答え1
GAEコンソールでサイドメニューに移動し、App Engine -> Instances
デフォルトのアプリに接続しない場合は、左上のドロップダウンを変更します。
次に、SSH ボタンをクリックします。
Dockerイメージは保存されます/var/lib/docker/overlay2
が、多くそのうちの。
アプリが含まれているものを見つけるには、プロジェクトに固有のファイル名 (ここでは ) を選択し、messageProcessor.js
そのファイル名を含むすべての画像を検索します。
(SSH ユーザーには権限がないため、そのフォルダーで find を実行するには sudo が必要です)
sudo find /var/lib/docker/overlay2 -name messageProcessor.js
うまくいけば、次のような 1 つの結果だけが得られるでしょう。
/var/lib/docker/overlay2/14b22c856283a3231a55c79f54d298acb9750fc886037533ef830acf55a10116/merged/app/jobs/messageProcessor.js
アプリがどこにあるかがわかったら、ファイルを編集できます。
sudo vi /var/lib/docker/overlay2/14b22c856283a3231a55c79f54d298acb9750fc886037533ef830acf55a10116/merged/app/some/file/in/my/app.js
変更を有効にするにはアプリを再起動してください
# ps -ef | grep node
root 11152 11151 0 Sep13 ? 00:00:00 node /app/index.js
# sudo kill <the pid of your process>