如何在无GitLab服务器的情况下部署Spring Boot应用程序?

时间:2019-02-09 11:28:59

标签: spring-boot gitlab serverless

我配置了一个Google可以演示的项目,并在Hello World Spring启动应用程序的GitLab Serverless设置中为其创建了集群。我发现有关部署应用程序的唯一信息是https://docs.gitlab.com/ee/user/project/clusters/serverless/#deploying-serverless-applications,它可能会解释如何仅部署Ruby应用程序。我不确定,因为脚本中没有使用任何变量,也没有提示

  

注意:您可以参考示例Knative Ruby App入门。

有点令人困惑,因为如果我不熟悉构建而不是不构建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 个答案:

答案 0 :(得分:1)

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