我配置了一个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
(文件名中的版本对于进一步部署没有意义,但这是一个后续问题)。
答案 0 :(得分:1)
原因是environment
中指定的.gitlab-ci.yml
值与GitLab Kubernetes配置不匹配,有关详细信息,请参见https://docs.gitlab.com/ee/user/project/clusters/#troubleshooting-missing-kubeconfig-or-kube_token。