簡體   English   中英

.gitlab-ci.yml中的多個Docker鏡像

[英]Multiple Docker images in .gitlab-ci.yml

以下是我使用GitLab及其集成CI服務設置的問題。 我有一個當前的GitLab 8.1。 和一個支持Docker的gitlabci-multi-runner(0.6.2)。 在擴展了ubuntu:精確圖像以包含gitbuild-essentials (現在名為precise:base )后,我得到了以下.gitlab-ci.yml運行:

image: precise:base
before_script:
   - apt-get install --yes cmake libmatio-dev libblas-dev libsqlite3-dev libcurl4-openssl-dev
   - apt-get install --yes libarchive-dev liblzma-dev

build:
  script:
    - mkdir build/
    - cd build
    - cmake -D CMAKE_BUILD_TYPE=Debug ../
    - make

現在我的問題是如何在不同的圖像上包含更多的工作? 因為我需要檢查代碼是否在不同的操作系統(如Ubuntu Precise,Ubuntu Trusty,CentOS 6,CentOS 7)上編譯(以及稍后工作)。為了減少工作量,我認為最好的方法是提供不同的Docker鏡像作為基礎。

現在問題是.gitlab-ci.yml必須如何支持這個?

您可以定義每個作業使用的圖像

例如:

before_script:
   - apt-get install --yes cmake libmatio-dev libblas-dev libsqlite3-dev libcurl4-openssl-dev
   - apt-get install --yes libarchive-dev liblzma-dev

build:precise:
  image: precise:base
  script:
    - mkdir build/
    - cd build
    - cmake -D CMAKE_BUILD_TYPE=Debug ../
    - make

build:trusty:
  image: trusty:base
  script:
    - mkdir build/
    - cd build
    - cmake -D CMAKE_BUILD_TYPE=Debug ../
    - make

你可以使用Anchors更清晰地制作.gitlab-ci.yml (但這需要GitLab 8.6和GitLab Runner v1.1.1。)

像這樣:

before_script:
   - apt-get install --yes cmake libmatio-dev libblas-dev libsqlite3-dev libcurl4-openssl-dev
   - apt-get install --yes libarchive-dev liblzma-dev

.build_template: &build_definition
  script:
    - mkdir build/
    - cd build
    - cmake -D CMAKE_BUILD_TYPE=Debug ../
    - make

build:precise:
  image: precise:base
  <<: *build_definition

build:trusty:
  image: trusty:base
  <<: *build_definition

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM