Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.gitlab-ci.yml中有多个Docker映像_Git_Docker_Continuous Integration_Gitlab Ci - Fatal编程技术网

.gitlab-ci.yml中有多个Docker映像

.gitlab-ci.yml中有多个Docker映像,git,docker,continuous-integration,gitlab-ci,Git,Docker,Continuous Integration,Gitlab Ci,下面是我对GitLab及其集成CI服务的问题设置。我有一个当前的GitLab 8.1。以及支持Docker的gitlabci multi runner(0.6.2)。在扩展ubuntu:precise映像以包含git和build essentials(现在命名为precise:base)之后,我运行了以下.gitlab ci.yml: image: precise:base before_script: - apt-get install --yes cmake libmatio-dev

下面是我对GitLab及其集成CI服务的问题设置。我有一个当前的GitLab 8.1。以及支持Docker的gitlabci multi runner(0.6.2)。在扩展ubuntu:precise映像以包含
git
build 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
现在我的问题是如何在不同的图像上包含更多的工作?因为我需要检查代码是否在不同的操作系统上编译(以及以后的工作情况),比如UbuntuPrecise、UbuntuTrusty、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
您可以使用使
.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
在脚本之前:
-apt get install——是cmake libmatio dev libblas dev libsqlite3 dev libcurl4 openssl dev
-apt get install——是libarchive dev liblzma dev
.build\u模板:&build\u定义
脚本:
-mkdir构建/
-光盘制作
-cmake-D cmake_BUILD_TYPE=Debug/
-制造
建造:精确:
图片:精确:基础

有没有办法为每个作业定义两个图像?我需要一个gradle:jdk11映像以及一个用于特定测试的mysql映像job@Hemil你有办法使用2个图像吗?@buckybarns在gitlab中有办法使用服务。因此,我可以为jdk添加一个映像,并为mysql指定一个服务。不幸的是,我已经放弃了这个项目,但您可以找到有关如何在中添加服务的资源gitlab@Hemil我使用了一个定制的gitlab runner。因为我要在gitlab runner上添加很多配置。