1. ホーム
  2. git

[解決済み] .gitlab-ci.ymlで複数のDockerイメージを作成する。

2023-03-30 17:11:38

質問

GitLabとその統合CIサービスに関する私の問題設定です。私は現在のGitLab 8.1と、Dockerをサポートするgitlabci-multi-runner (0.6.2)を持っています。ubuntu:precise イメージを拡張して、以下を含むようにしました。 gitbuild-essentials (現在は precise:ベース という名前になりました)次のようになりました。 .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などの異なるOS上でコードがコンパイルされるかどうか(そして後で動作するかどうか)をチェックする必要があるからです。作業を減らすために、私はベースとして異なる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