我的travis-ci yml for docker似乎有点冗长 - 我使用docker运行不正确吗?

时间:2015-10-01 05:53:54

标签: docker travis-ci

我已准备好在这里进行一些严重的拖钓,但我不知道还能在哪里看。如果您想帮助我感谢,否则我们将非常感谢您对更好的答案来源。 我有一个.yml文件用于Travis-CI,我正在使用自定义docker镜像。我已经包含了下面的文件,并且不禁感到我正在努力地做到这一点。欢迎提出所有建议。

sudo: required

language: c

services:
    - docker

before_install:
    - docker pull kaixhin/cuda
    - docker run --name="cuda_7.5" kaixhin/cuda /bin/sh -c "sudo apt-get update"
    - docker commit cuda_7.5 kaixhin/cuda:latest
    - docker rm cuda_7.5 
    - docker run --name="cuda_7.5" kaixhin/cuda /bin/sh -c "sudo apt-get install -y cmake"
    - docker commit cuda_7.5 kaixhin/cuda:latest
    - docker rm cuda_7.5
    - mkdir  /home/travis/build/inJeans/cuda_dsmc/build

script:
    - docker run -v=/home/travis/build/inJeans/cuda_dsmc:/cuda_dsmc --name="cuda_7.5" kaixhin/cuda /bin/sh -c "cd /cuda_dsmc/build; cmake .."
    - docker commit cuda_7.5 kaixhin/cuda:latest
    - docker rm cuda_7.5
    - docker run -v=/home/travis/build/inJeans/cuda_dsmc:/cuda_dsmc --name="cuda_7.5" kaixhin/cuda /bin/sh -c "cd /cuda_dsmc/build; make" 
    - docker commit cuda_7.5 kaixhin/cuda:latest
    - docker rm cuda_7.5
    - docker run -v=/home/travis/build/inJeans/cuda_dsmc:/cuda_dsmc --name="cuda_7.5" kaixhin/cuda /bin/sh -c "cd /cuda_dsmc/build; make test" 
    - docker commit cuda_7.5 kaixhin/cuda:latest
    - docker rm cuda_7.5

我正在对Docker容器外的本地目录进行更改,我希望这些更改能够持续存在,这就是我不断提交的原因。

1 个答案:

答案 0 :(得分:2)

这不是Dockerfile,而是一个travis-ci配置文件。

我没有对此进行测试,但是如果您希望将before_installscript合并为单个Dockerfile,则可能看起来像这样。

FROM kaixhin/cuda
RUN /bin/sh -c "sudo apt-get update \
    && sudo apt-get install -y cmake" \
RUN mkdir -p /cuda_dsmc/build \
    && curl -SL http://path.to.your/code.tgz \
    | tar -xJC /cuda_dsmc \
    && /cuda_dsmc/build
    && cmake .. \
    && build \ 
    && make \
    && make test

使用Docker Hub的自动构建,您可以拥有一个自定义图像,您的代码可以在travis-ci中进行拉取和测试。

进一步阅读: