我已经准备好在这里进行一些严重的拖钓,但是我不确定还有什么地方可以找。如果您想帮助我,谢谢,否则,将向您提供更好的答案来源表示感谢。
我有一个.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容器外部的本地目录进行更改,并且我希望这些更改能够保留下来,这就是为什么我不断提交的原因。
最佳答案
这不是Dockerfile,而是travis-ci配置文件。
我尚未对此进行测试,但是如果您想将before_install
和script
合并为单个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中进行提取和测试。
进一步阅读:
关于docker - 我对docker的travis-ci yml似乎有点冗长-我使用的docker运行不正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880317/