我的docker的travis-ci yml看起来有点冗长 – 我用Docker运行不正确?

我准备好在这里认真地拖钓,但是我不确定还有什么地方可以看。 如果你想帮助我感谢,否则一种点头朝着更好的答案来源将不胜感激。 我有一个用于Travis-CI的.yml文件,我正在使用一个自定义的docker镜像。 我已经包含了下面的文件,不禁感到我正在努力做到这一点。 所有的build议将是受欢迎的。

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容器外部的本地目录,我希望这些更改能够持续下去,这就是为什么我一直在提交。

这不是一个Dockerfile,这是一个travis-ciconfiguration文件。

我没有testing过,但是如果你想把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的自动构build,你可以有一个自定义的图像与你的代码准备拉和travis-citesting。

进一步阅读:

  • Dockerfile最佳实践: http ://docs.docker.com/articles/dockerfile_best-practices
  • Docker Hub自动构build: http : //docs.docker.com/userguide/dockerrepos/#automated-builds