我为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
(文件名中的版本对于进一步部署没有意义,但这是一个后续问题)。