首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gitlab-ci -服务

Gitlab-ci -服务
EN

Stack Overflow用户
提问于 2021-02-01 19:54:01
回答 1查看 1.4K关注 0票数 1

我有一个服务和一些阶段在我的yml。我只需要在特定的阶段使用这项服务。然而,不幸的是,服务为每个阶段加载映像,延长了执行时间。是否有一种方法来防止服务被执行或使用的每一个阶段内的词?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-01 23:08:09

如果没有.gitlab-ci.yml文件,很难确定,但听起来您在“默认”级别(适用于正在执行的每个作业)定义了服务,而不是定义了作业级别(仅适用于该作业)。看看docs (https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#define-image-and-services-from-gitlab-ciyml)中的示例:

用于整个管道的服务

代码语言:javascript
运行
复制
default:
  image: ruby:2.6

  services:
    - postgres:11.7

  before_script:
    - bundle install

test:
  script:
    - bundle exec rake spec

在这里,将为管道中的每个作业运行postgres:11.7服务,因为它是在“默认”配置中在任何作业之外定义的。如果只设置一个关键字,它也可能如下所示:

代码语言:javascript
运行
复制
services:
  - postgres:11.7

test:
  script:
    - bundle exec rake spec

特定作业的服务

代码语言:javascript
运行
复制
test:2.6:
  image: ruby:2.6
  services:
    - postgres:11.7
  script:
    - bundle exec rake spec

test:2.7:
  image: ruby:2.7
  services:
    - postgres:12.2
  script:
    - bundle exec rake spec

在这里,每个作业都有自己的servicesimage配置,因此该服务将只用于该作业,一旦它完成,服务将被终止。如果您想要针对多个版本的数据库测试代码,这是非常有用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65999276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档