我正在使用maven和google cloud构建我的spring启动应用程序,但不管怎么说,无论我使用_683048在本地运行还是使用Cloud Build进行部署,我都会获得不同的部署结果 .
如果我使用 mvn appengine:run
在本地运行,我可以按预期访问我的控制器 . 使用Cloud Build,我收到 404
错误 .
我的cloudbuild.yaml如下:
steps:
- name: 'gcr.io/cloud-builders/mvn'
args: ['package']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy', 'target/myapp/WEB-INF/appengine-web.xml']
您如何建议配置 Cloud 构建以在Google App引擎上构建和部署Spring启动应用程序?
在进行额外挖掘后,问题似乎与返回的某种错误有关:
javax.servlet.ServletContext log: 2 Spring WebApplicationInitializers detected on classpath
使用 mvn appengine:deploy
从本地计算机部署时,我不会在堆栈跟踪中收到此消息
我的问题仍然存在,如何创建可以调用 mvn appengine:deploy
的_683054?
1 回答
为了构建一个spring boot项目并使用Google Cloud Build将其部署到google appengine . 我最终不得不首先使用下面的图像构建“构建器”图像,并在执行我的实际应用程序构建时引用此图像 .
Dockerfile
cloudbuild.yaml
我的 Spring 季启动项目
cloudbuild.yaml
现在引用此图片:我将尝试将此docker镜像放在dockerhub和github上供其他人查找 . 我也很感激熟悉docker和linux的人们帮助改进这个图像以减小它的大小 . (例如,使用Alpine而不是Debian或Debian Stretch Slim) . 与此同时,我希望这有助于像我这样的人 .