Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法通过gitlab将我的代码部署到google云应用程序引擎_Java_Google App Engine_Gitlab Ci_Gcloud_App Engine Flexible - Fatal编程技术网

Java 无法通过gitlab将我的代码部署到google云应用程序引擎

Java 无法通过gitlab将我的代码部署到google云应用程序引擎,java,google-app-engine,gitlab-ci,gcloud,app-engine-flexible,Java,Google App Engine,Gitlab Ci,Gcloud,App Engine Flexible,我正在尝试创建一个gitlab管道,用于将我的spring boot应用程序部署到google app engine,并且我能够向gitlab验证应用程序引擎,但在ci文件的部署步骤中,我得到必须安装Java 7+JRE,并且必须安装在您的系统路径上,尽管我在gitlab ci中使用gcloud install components app engine Java命令安装了它文件请建议需要采取什么措施来解决此错误 .gitlab-ci.yml文件: image: google/cloud-sdk

我正在尝试创建一个gitlab管道,用于将我的spring boot应用程序部署到google app engine,并且我能够向gitlab验证应用程序引擎,但在ci文件的部署步骤中,我得到必须安装Java 7+JRE,并且必须安装在您的系统路径上,尽管我在gitlab ci中使用gcloud install components app engine Java命令安装了它文件请建议需要采取什么措施来解决此错误

.gitlab-ci.yml文件:

image: google/cloud-sdk:alpine

            deploy_production:
              stage: deploy
              environment: Production
              only:
              - master
              script:
              - echo $DEPLOY_KEY_FILE_PRODUCTION > /tmp/$CI_PIPELINE_ID.json
              - gcloud -q components install app-engine-java
              - gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
              - gcloud --quiet --project $PROJECT_ID_PRODUCTION --verbosity debug app deploy src/main/webapp/WEB-INF/appengine-web.xml
下面是调试详细信息,其中提到要使用java的本地暂存,必须安装java JRE,尽管我已经使用gcloud安装组件google app engine cmd安装了它:

$ gcloud --quiet --project $PROJECT_ID_PRODUCTION --verbosity debug app deploy src/main/webapp/WEB-INF/appengine-web.xml
            DEBUG: Running [gcloud.app.deploy] with arguments: [--project: "playground-kg", --quiet: "True", --verbosity: "debug", DEPLOYABLES:1: "[u'src/main/webapp/WEB-INF/appengine-web.xml']"]
            **DEBUG: (gcloud.app.deploy) To use the local staging for java, a Java 7+ JRE must be installed and on your system PATH**
            Traceback (most recent call last):
              File "/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 983, in Execute
                resources = calliope_command.Run(cli=self, args=args)
              File "/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 784, in Run
                resources = command_instance.Run(args)
              File "/google-cloud-sdk/lib/surface/app/deploy.py", line 90, in Run
                parallel_build=False)
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/deploy_util.py", line 573, in RunDeploy
                args.deployables, stager, deployables.GetPathMatchers())
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/deployables.py", line 334, in GetDeployables
                service = Service.FromPath(path, stager, path_matchers)
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/deployables.py", line 102, in FromPath
                service = matcher(path, stager)
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/deployables.py", line 175, in AppengineWebMatcher
                staging_dir = stager.Stage(descriptor, app_dir, 'java-xml', env.STANDARD)
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/staging.py", line 387, in Stage
                return command.Run(self.staging_area, descriptor, app_dir)
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/staging.py", line 171, in Run
                args = self.GetArgs(descriptor, app_dir, staging_dir)
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/staging.py", line 251, in GetArgs
                return self._mapper(self.GetPath(), descriptor, app_dir, staging_dir)
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/staging.py", line 107, in _JavaStagingMapper
                java_bin = java.RequireJavaInstalled('local staging for java')
              File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/util/java.py", line 54, in RequireJavaInstalled
                v=min_version))
            JavaError: To use the local staging for java, a Java 7+ JRE must be installed and on your system PATH
            ERROR: (gcloud.app.deploy) To use the local staging for java, a Java 7+ JRE must be installed and on your system PATH

有些人在尝试创建相同的工作流时遇到了相同的问题,但是使用了github。可以查看相同的问题。这家伙通过向Docker添加openjdk-8解决了这个问题

您可以看到如何将openjdk-8添加到Docker

如果这不适合你,请让我知道,我会尝试编辑我的答案


您可能还想检查谷歌云和使用CI。这可能对您的CI工作流有帮助。

有些人在尝试创建相同的工作流时遇到了相同的问题,但使用github。可以查看相同的问题。这家伙通过向Docker添加openjdk-8解决了这个问题

您可以看到如何将openjdk-8添加到Docker

如果这不适合你,请让我知道,我会尝试编辑我的答案


您可能还想检查谷歌云和使用CI。这可能对您的CI工作流程有所帮助。

我无法将这段代码整合起来,以便将jdk安装到我的CI文件中。你能帮我集成apt get和gcloud cmds吗?你能告诉我你怎么不能集成它吗?显示一些错误或日志。请注意,您可以将该脚本与CI文件分开运行。我无法将此代码整合起来,以便将jdk安装到我的CI文件中。你能帮我集成apt get和gcloud cmds吗?你能告诉我你怎么不能集成它吗?显示一些错误或日志。请注意,可以从CI文件中单独运行该脚本。