Docker Gitlab CI部署阶段和任务因Rancher API Url和密钥错误而失败
我有一个Gitlab CI/CD设置,它使用Rancher将spring启动应用程序部署到DigitalOcean droplet 任务失败,出现错误的Rancher API Url和密钥错误消息,而事实上,从我使用Rancher cli中的Rancher up命令手动运行部署的事实来看,这些API详细信息是正确的 截图 .gitlab-ci.yml源Docker Gitlab CI部署阶段和任务因Rancher API Url和密钥错误而失败,docker,digital-ocean,gitlab-ci,rancher,Docker,Digital Ocean,Gitlab Ci,Rancher,我有一个Gitlab CI/CD设置,它使用Rancher将spring启动应用程序部署到DigitalOcean droplet 任务失败,出现错误的Rancher API Url和密钥错误消息,而事实上,从我使用Rancher cli中的Rancher up命令手动运行部署的事实来看,这些API详细信息是正确的 截图 .gitlab-ci.yml源 image: docker:latest services: - docker:dind
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
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
rancher-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
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
通过在网上做更多的研究,我最终找到了问题的原因。我发现所需的RANCHER_URL是基本URL,而不是RANCHER UI中提供的完整URL。例如,我最初使用的是Rancher UI系统生成的完整url,如下所示。 正确的URL是 我在Gitlab Saas Cloud/Online中将RANCHER_URL设置为一个秘密环境变量 我感谢每一个试图帮助我的人
非常感谢。您使用升级运行的实际脚本看起来如何?@JakubKania,非常感谢您的回复。在意识到我遗漏了一些非常重要的东西之后,我修改了这个问题。我还提供了docker-compose.yml和rancher-compose.yml文件,描述了构建、打包和部署任务。