Unable to deploy my code to google cloud app engine via gitlab

╄→гoц情女王★ 提交于 2019-12-24 11:18:23

问题


I am trying to create a gitlab pipeline for deploying my spring boot app to google app engine and i am able to authenticate app engine to gitlab but at deployment step of ci file i am getting Java 7+ JRE must be installed and on your system PATH though i have installed it with gcloud install components app-engine-java command in gitlab ci file. Please suggest what needs to be done to resolve this error.

.gitlab-ci.yml file:

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

Below are the debug details which mentions that to use the local staging for java, java JRE must be installed though i have installed it using gcloud install components 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

回答1:


Some people got the same issue trying to create the same workflow, but with github. The same issue can be viewed here. This guy solved this by adding openjdk-8 to Docker.

You can see here how to add openjdk-8 to Docker.

If this did not work for you, please let me know and I will try to edit my answer.

You may also want to check Jenkins for Google Cloud and using Jenkins with Gitlab for CI. It may be helpful for your CI workflow.



来源:https://stackoverflow.com/questions/57965294/unable-to-deploy-my-code-to-google-cloud-app-engine-via-gitlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!