简体   繁体   English

使用 Gitlab CI 将 Spring 引导应用程序部署到 Google App Engine?

[英]Deploy Spring Boot application to Google App Engine using Gitlab CI?

I have a Spring boot application which I want to deploy to Google App Engine via gitlab CI.我有一个 Spring 引导应用程序,我想通过 gitlab CI 将其部署到 Google App Engine。 The build is failing with the following error:构建失败并出现以下错误:

ERROR: (gcloud.app.deploy) To use the local staging for java, a Java 7+ JRE must be installed and on your system PATH

Below is gitlab-ci.yml file which needs to be modified to include JRE installation.以下是需要修改以包含 JRE 安装的gitlab-ci.yml文件。 I have tried almost all ways available over web including using apt-get package, Also installing app-engine-java using gcloud but non prints java -verison.我已经尝试了 web 上几乎所有可用的方法,包括使用 apt-get package,还使用 gcloud 安装 app-engine-java 但不打印 java - Can someone please modify this ci file for installing jre 7+ dependencies.有人可以修改这个 ci 文件以安装 jre 7+ 依赖项。

        ```
        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```

Logs:
        ```Pulling docker image google/cloud-sdk:alpine ...
        Using docker image sha256:6a09bced8955f4d2969e7d33b0acf31f83930933b0f775ad5768f3dc8496d99a for google/cloud-sdk:alpine ...
        Running on runner-F7vG1_9e-project-1361-concurrent-0 via runner-f7vg19e-docker-auto-scale-1568834560-aeda2a66...
        Fetching changes with git depth set to 50...
        Initialized empty Git repository in /builds/sre/jira-servicenow-integration/.git/
        Created fresh repository.
        From https://gitlab.lblw.ca/sre/jira-servicenow-integration
         * [new branch]      master     -> origin/master
        Checking out fe1260a3 as master...

        Skipping Git submodules setup
        $ docker run google/cloud-sdk:alpine sh -c 'gcloud auth print-access-token' | docker login --password-stdin -u oauth2accesstoken  https://gcr.io || true
        /bin/bash: line 86: docker: command not found
        /bin/bash: line 86: docker: command not found
        $ echo $DEPLOY_KEY_FILE_PRODUCTION > /tmp/$CI_PIPELINE_ID.json
        $ gcloud -q components install app-engine-java


        Your current Cloud SDK version is: 262.0.0
        Installing components from version: 262.0.0

        +---------------------------------------------------+
        |        These components will be installed.        |
        +------------------------------+---------+----------+
        |             Name             | Version |   Size   |
        +------------------------------+---------+----------+
        | Cloud Datastore Emulator     |   2.1.0 | 18.4 MiB |
        | gRPC python library          |         |          |
        | gRPC python library          |  1.20.0 |  2.1 MiB |
        | gcloud app Java Extensions   |  1.9.76 | 85.9 MiB |
        | gcloud app Python Extensions |  1.9.86 |  6.0 MiB |
        +------------------------------+---------+----------+

        For the latest full release notes, please visit:
          https://cloud.google.com/sdk/release_notes

        #============================================================#
        #= Creating update staging area                             =#
        #============================================================#
        #= Installing: Cloud Datastore Emulator                     =#
        #============================================================#
        #= Installing: gRPC python library                          =#
        #============================================================#
        #= Installing: gRPC python library                          =#
        #============================================================#
        #= Installing: gcloud app Java Extensions                   =#
        #============================================================#
        #= Installing: gcloud app Python Extensions                 =#
        #============================================================#
        #= Creating backup and activating new installation          =#
        #============================================================#

        Performing post processing steps...
        ..........................................................done.

        Update done!

        $ gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
        Activated service account credentials for: [playground-kg@appspot.gserviceaccount.com]
        $ 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
        ERROR: Job failed: exit code 1
        ```

You can go here for more information on how to to add openjdk-8 to the Docker image.您可以在 go 此处获取有关如何将 openjdk-8 添加到 Docker 映像的更多信息。 This SO post contains an answer with additional links on how to setup the missing java jdk files.SO帖子包含有关如何设置缺少的 java jdk 文件的附加链接的答案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Spring Boot - 将应用程序部署到 Google Cloud App 引擎但缺少 app.yaml - Spring Boot - Deploy application to Google Cloud App engine but missing app.yaml 在 Google App Engine 中部署 Spring boot gradle 应用 - Deploy Spring boot gradle app in Google App Engine 如何在 Google Cloud Compute Engine 中部署 Spring Boot 应用程序? - How to deploy Spring Boot application in Google Cloud Compute Engine? 使用应用引擎部署本地主机上的谷歌云应用引擎和 Spring Boot 错误 - google cloud app engine and spring boot bug on localhost deploy with app engine 在 Google Cloud App Engine 上构建 Spring Boot 应用程序的触发器 - Build trigger for Spring Boot application on Google Cloud App Engine 在 Google App Engine 上部署 Spring Boot 应用程序时出错 - Error while deploying spring boot application on google app engine Google App Engine 中的 Spring 启动应用程序 http 到 https 重定向 - Spring boot application http to https redirect in Google App Engine 部署后无法访问Google App Engine中的Spring Boot应用程序 - Unable to access Spring Boot application in Google App Engine after deployment 使用servlet过滤器时,App Engine上的Spring Boot应用程序错误 - Spring Boot application on App Engine errors while using servlet filters 如何使用gradle使GitLab CI发布Spring Boot JAR? - How to make GitLab CI Release a Spring Boot JAR using gradle?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM