【问题标题】:Gitlab-CI Deployment stage and task fails with wrong Rancher API Url and KeyGitlab-CI 部署阶段和任务因错误的 Rancher API Url 和密钥而失败
【发布时间】:2018-07-19 10:24:15
【问题描述】:

我有一个 Gitlab CI/CD 设置,它使用 Rancher 将 Spring Boot 应用程序部署到 DigitalOcean droplet。

任务失败并显示错误的 Rancher API Url 和 Key 错误消息,而事实上,从我使用 Rancher cli 中的“rancher up”命令手动运行部署这一事实来看,这些 API 详细信息是正确的。

截图

.gitlab-ci.yml 源码

    image: docker:latest
        services:
          - docker:dind

        variables:
          DOCKER_DRIVER: overlay
          SPRING_PROFILES_ACTIVE: gitlab-ci

        stages:
          - build
          - package
          - deploy

        maven-build:
          image: maven:3-jdk-8
          stage: build
          script: "mvn package -B"
          artifacts:
            paths:
              - target/*.jar

        docker-build:
          stage: package
          script:
          - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
          - docker build -t registry.gitlab.com/username/mta-hosting-optimizer .
          - docker push registry.gitlab.com/username/mta-hosting-optimizer

digitalocean-deploy:
  image: cdrx/rancher-gitlab-deploy
  stage: deploy
  script:
  - upgrade --no-ssl-verify --environment Default

docker-compose.yml

version: '2'
services:
  web:
    image: registry.gitlab.com/username/mta-hosting-optimizer:latest
    ports:
    - 8082:8080/tcp
  mta-hosting-optimizer-lb:
    image: rancher/lb-service-haproxy:v0.9.1
    ports:
    - 80:80/tcp
    labels:
      io.rancher.container.agent.role: environmentAdmin,agent
      io.rancher.container.agent_service.drain_provider: 'true'
      io.rancher.container.create_agent: 'true'
  web2:
    image: registry.gitlab.com/username/mta-hosting-optimizer:latest
    ports:
    - 8082:8080/tcp

rancher-compose.yml

version: '2'
services:
  web:
    scale: 1
    start_on_create: true
  mta-hosting-optimizer-lb:
    scale: 1
    start_on_create: true
    lb_config:
      certs: []
      port_rules:
      - path: ''
        priority: 1
        protocol: http
        service: web
        source_port: 80
        target_port: 8080
      - priority: 2
        protocol: http
        service: web2
        source_port: 80
        target_port: 8080
    health_check:
      response_timeout: 2000
      healthy_threshold: 2
      port: 42
      unhealthy_threshold: 3
      initializing_timeout: 60000
      interval: 2000
      reinitializing_timeout: 60000
  web2:
    scale: 1
    start_on_create: true

【问题讨论】:

  • 您使用upgrade 运行的实际脚本看起来如何?
  • @JakubKania,非常感谢您的回复。在意识到我错过了一些非常重要的事情后,我修改了这个问题。我还提供了描述构建、打包和部署任务的 docker-compose.yml 和 rancher-compose.yml 文件。

标签: docker digital-ocean gitlab-ci rancher


【解决方案1】:

我最终通过在线进行更多研究找到了问题的原因。我发现所需的 RANCHER_URL 是基本 url,而不是 Rancher UI 中提供的完整 url。例如,我最初使用 Rancher UI 系统生成的完整 url,看起来像这样 http://XXX.XXX.XXX.XX:8080/v2-beta/projects/1a5。 正确的网址是http://XXX.XXX.XXX.XX:8080/

我将 RANCHER_URL 设置为 Gitlab Saas(云/在线)中的秘密环境变量。

感谢所有尝试提供帮助的人。

非常感谢。

【讨论】:

    猜你喜欢
    • 2020-10-25
    • 1970-01-01
    • 2022-01-11
    • 2020-12-13
    • 2019-04-05
    • 2021-10-29
    • 2020-06-14
    • 1970-01-01
    • 2019-08-29
    相关资源
    最近更新 更多