Google Container Registry与本地(打包的Spring Boot应用)中的不同图像行为

时间:2017-10-12 07:58:45

标签: spring-boot google-cloud-platform google-kubernetes-engine google-container-builder

我们有一个Spring Boot应用程序(多个微服务),与Google Container Builder打包并发布到注册表。我们的<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/ui-darkness/jquery-ui.min.css" rel="stylesheet"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script> </head> <body> <div class="vfInfoIcon" style="border: 1px solid #000" "data-info="someInfo">1. click inside this DIV for dialog <img src="https://www.gravatar.com/avatar/7b118e7ce745b1e84911c890f1179eb0?s=48&amp;d=identicon&amp;r=PG&amp;f=1" alt="" height="24" width="24"> <div class="infoText" data-info="someInfo" data-title="TITLE_0"></div> </div> <div class="vfInfoIcon" style="border: 1px solid #000" data-info="someInfo">2. click inside this DIV for dialog <img src="https://www.gravatar.com/avatar/7b118e7ce745b1e84911c890f1179eb0?s=48&amp;d=identicon&amp;r=PG&amp;f=1" alt="" height="24" width="24"> <div class="infoText" data-info="someInfo" data-title="TITLE_1"></div> </div> <script type="text/javascript"> function bindInfoIconClick(obj, opt) { obj.off().on("click",function(e) { e.stopPropagation(); e.preventDefault(); var infoText = obj.data('info'); var dialog = obj.children('div'); opt.title = dialog.data('title'); $("#dialog").dialog(opt).dialog('open'); }); } var opt = { draggable: false, modal: true, width: 600, resizable: false, autoOpen: false }; $('.vfInfoIcon').each(function() { bindInfoIconClick($(this), opt); }); </script> <div id="dialog" title="Dialog"> <p>Some text. Blahh blahh...</p> </div> <input type="button" id="button" value="Click to open the dialog"> <script> $(function() { $("#dialog").dialog({ autoOpen: false }); $("#button").on("click", function() { $("#dialog").dialog("open"); }); }); </script> </body> </html> 看起来像这样:

cloudbuild.yaml

在推送到GitHub上的存储库时由触发器调用。

如果我在本地运行:

steps: - name: 'gcr.io/cloud-builders/java/gradle' id: 'java-build' args: ['build'] - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/api-auth:$COMMIT_SHA', '-t', 'gcr.io/$PROJECT_ID/api-auth:latest', '-f', './api-auth/Dockerfile', './api-auth'] waitFor: ['java-build'] - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/api-user:$COMMIT_SHA', '-t', 'gcr.io/$PROJECT_ID/api-user:latest', '-f', './api-user/Dockerfile', './api-user'] waitFor: ['java-build'] images: - 'gcr.io/$PROJECT_ID/api-auth:$COMMIT_SHA' - 'gcr.io/$PROJECT_ID/api-auth:latest' - 'gcr.io/$PROJECT_ID/api-user:$COMMIT_SHA' - 'gcr.io/$PROJECT_ID/api-user:latest'

结果图像运行良好,例如:

container-builder-local --dryrun=false .

但是当使用Container Builder在云中构建映像时,应用程序无法正常工作并因以前从未发生过的错误而失败。

即使被拉了:

docker run -e "SPRING_PROFILES_ACTIVE=development" -p 9000:9000 gcr.io/.../api-auth:latest

并在本地运行新错误会阻止应用程序加载:

gcloud docker -- pull gcr.io/.../api-auth:latest

这仅在图像通过Cloud Container Builder时发生 - 既不是本地构建器,也不是本地gradle构建。

这可能是云中的问题,还是我错过了一些微不足道的事情?

我还提交了一个issue on GitHub,但由于它是一个更广泛的问题以及应用程序的Spring Boot特性,我想我会问这里是否响铃。

0 个答案:

没有答案