我已准备好在这里进行一些严重的拖钓,但我不知道还能在哪里看。如果您想帮助我感谢,否则我们将非常感谢您对更好的答案来源。 我有一个.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容器外的本地目录进行更改,我希望这些更改能够持续存在,这就是我不断提交的原因。
答案 0 :(得分:2)
这不是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中进行拉取和测试。
进一步阅读: