【发布时间】:2014-11-15 14:39:24
【问题描述】:
我正在试用 Google AppEngine 的 Managed VMs Beta,虽然它使用 AppEngine 开发服务器在我的 IDE 中本地运行,但我似乎无法使用 mvn appengine:gcloud_app_run 运行它。
我始终如一地得到:
"[INFO] INFO: default: "GET /_ah/health?IsLastSuccessful=no HTTP/1.1" 503 298"
因此需要访问 docker 容器中输出的日志来诊断该 503。
我已在 appengine-maven-plugin 配置部分中使用以下行激活日志记录(在 IDE 中运行良好)。
<gcloud_app_enable_mvm_logs>true</gcloud_app_enable_mvm_logs>
然后我尝试从 docker 容器访问日志:
➜ ~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76369bc9b773 heimdall-dev.default.1:latest "/home/vmagent/jetty 5 seconds ago Up 4 seconds 0.0.0.0:49174->8080/tcp google.appengine.heimdall-dev.default.1.0.2014-11-13T210256.776274Z
➜ ~ docker logs 76369bc9b773
Info: Limiting Java heap size to: 1456M
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=64M; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=166M; support was removed in 8.0
2014-11-13 21:02:59.384:INFO::main: Logging initialized @372ms
2014-11-13 21:02:59.487:INFO::main: Redirecting stderr/stdout to /var/log/app_engine/STDERR.2014_11_13.log//var/log/app_engine/STDOUT.2014_11_13.log
所以我希望日志文件“神奇地”映射到本地机器上的本地 /var 文件夹(即在 docker 容器之外)。
不过好像不是这样:
➜ ~ tail -f /var/log/app_engine/STDERR.2014_11_13.log
tail: /var/log/app_engine/STDERR.2014_11_13.log: No such file or directory
➜ ~ tail -f /var/log/app_engine/STDOUT.2014_11_13.log
tail: /var/log/app_engine/STDOUT.2014_11_13.log: No such file or directory
这样做是否正确?如果是,我错过了什么?否则访问日志的正确方法是什么?
P.S.:我也尝试使用docker attach 76369bc9b773 ssh-ing 到 docker 容器中,但这始终返回一个错误。
P.S.2:我的应用程序是 Java 8 上的“基本”Spring MVC+Security+Social+DataJPA,所以我猜想在 IDE+ 中不会发生 bean 初始化故障GAE 开发服务器以某种方式
P.S.3:我按照这里的教程进行操作:https://github.com/GoogleCloudPlatform/appengine-java-vm-guestbook-extras 并使用mvn appengine:gcloud_app_run 让第 3 阶段正常运行
P.S.4:为了让我的应用在 IDE 中运行,由于我使用的是 Spring MVC,我必须实现自己的 /_ah/start 端点(灵感来自 Google App Engine Localhost Backend Error 和 No mapping found using Spring3 MVC + Maven2 on GAE)但是我不确定这是否是正确的做法
P.S.5:我查看了在端口 8000 上运行的管理控制台,那里的日志与 shell 中的日志相同(即除了 HTTP 503 消息之外没有太多其他内容)
【问题讨论】:
标签: logging docker gcloud google-app-engine