我有一个Spring Boot应用程序,我正在试图找出将它部署到Google新的Managed VM环境的位(这些是能够运行Docker容器的VM)。我已经开始使用以下内容定义app.yaml:
application: myapp-1
version: 1
runtime: java
api_version: 1
vm: true
handlers:
- url: /*
servlet: org.springframework.web.servlet.DispatcherServlet
init_params:
contextAttribute: org.springframework.web.context.WebApplicationContext.ROOT
然后我运行以下命令从我的应用程序根目录中测试:
gcloud --verbosity debug preview app run .
我一直在做一些试验和错误,现在得到以下例外:
Unknown url handler type.
<URLMap
secure=default
static_files=None
application_readable=None
auth_fail_action=redirect
require_matching_file=None
static_dir=None
redirect_http_response_code=None
http_headers=None
url=/*
script=None
upload=None
api_endpoint=None
expiration=None
position=None
login=optional
mime_type=None
>
我正在使用https://cloud.google.com/appengine/docs/java/configyaml/appconfig_yaml作为指南,但我开始怀疑托管VM环境是否支持app.yaml格式。
这里有一个类似的示例https://github.com/GoogleCloudPlatform/appengine-java-vm-guestbook-extras,但它不使用app.yaml格式。
是否有最新的示例可以让Spring Boot应用程序在Google托管虚拟机中运行?
答案 0 :(得分:1)
我只看到了在Google AppEngine上运行SprinBoot应用的示例https://github.com/scratches/spring-boot-sample-gae
Google还增加了few hints如何针对Google AppEngine优化SpringApp(我认为它也适用于Google Managed Vm)
您还可以检查SpringBoot部署提示(http://spring.io/blog/2014/03/07/deploying-spring-boot-applications),尤其是部署到Jetty容器的部分(通常GAE正在使用Jetty容器)
我也在尝试部署这样一个在ManagedVm上使用GoogleDatastore的SpringBoot应用程序,所以我很快会告诉你我的发现!保持良好的工作!
答案 1 :(得分:0)
YAML文件使用缩进来精确定义结构。您是否可以尝试缩进servlet
和init_params
的行,但需要很多空格,直到它们排列为示例here?或者这只是StackOverflow打破你的YAML粘贴的情况?