如何将Spring Boot应用程序部署到Google托管VM

时间:2014-11-06 16:26:29

标签: google-app-engine docker spring-boot google-compute-engine

我有一个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托管虚拟机中运行?

2 个答案:

答案 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文件使用缩进来精确定义结构。您是否可以尝试缩进servletinit_params的行,但需要很多空格,直到它们排列为示例here?或者这只是StackOverflow打破你的YAML粘贴的情况?