代码之家  ›  专栏  ›  技术社区  ›  Kalle Richter

如何使用GitLab serverless部署Spring boot应用程序?

  •  0
  • Kalle Richter  · 技术社区  · 6 年前

    我为Hello world Spring boot应用程序配置了一个Google Can demo项目,并在GitLab Serverless设置中为其创建了一个集群。我找到的关于部署应用程序的唯一信息是 https://docs.gitlab.com/ee/user/project/clusters/serverless/#deploying-serverless-applications 这可能解释了如何只部署Ruby应用程序。我对此不确定,因为脚本中使用的变量都没有解释,提示

    注意:您可以参考示例Knative Ruby应用程序开始。

    这让人有些困惑,因为如果我不熟悉构建我不熟悉的Ruby应用程序,那就无法让我开始。

    按照指示放置

    stages:
      - build
      - deploy
    
    build:
      stage: build
      image:
        name: gcr.io/kaniko-project/executor:debug
        entrypoint: [""]
      only:
        - master
      script:
        - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
        - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE
    
    deploy:
      stage: deploy
      image: gcr.io/triggermesh/tm@sha256:e3ee74db94d215bd297738d93577481f3e4db38013326c90d57f873df7ab41d5
      only:
        - master
      environment: production
      script:
        - echo "$CI_REGISTRY_IMAGE"
        - tm -n "$KUBE_NAMESPACE" --config "$KUBECONFIG" deploy service "$CI_PROJECT_NAME" --from-image "$CI_REGISTRY_IMAGE" --wait
    

    在里面 .gitlab-ci.yml 导致 deploy 由于以下原因导致的阶段失败

    $ tm -n "$KUBE_NAMESPACE" --config "$KUBECONFIG" deploy service "$CI_PROJECT_NAME" --from-image "$CI_REGISTRY_IMAGE" --wait
    2019/02/09 11:08:09 stat /root/.kube/config: no such file or directory, falling back to in-cluster configuration
    2019/02/09 11:08:09 Can't read config file
    ERROR: Job failed: exit code 1
    

    我的 Dockerfile 它允许在本地构建,如下所示:

    FROM maven:3-jdk-11
    COPY . .
    RUN mvn --batch-mode --update-snapshots install
    EXPOSE 8080
    CMD java -jar target/hello-world-0.1-SNAPSHOT.jar
    

    (文件名中的版本对于进一步部署没有意义,但这是一个后续问题)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kalle Richter    6 年前

    原因是 environment 中指定的值 .gitlab-ci.yml 以及GitLab Kubernetes配置,请参见 https://docs.gitlab.com/ee/user/project/clusters/#troubleshooting-missing-kubeconfig-or-kube_token 有关详细信息。