Docker 在Travis CI上缓存单个文件
在我基于travis的构建中,我需要首先下载一个大的Docker 在Travis CI上缓存单个文件,docker,travis-ci,Docker,Travis Ci,在我基于travis的构建中,我需要首先下载一个大的.tar.gz文件 这个.tar.gz永远不会更改,所以最好将其缓存 .tar.gz在我的Dockerfile中下载: runcurlftp://mycompanyftp.com/foo/bar/mylargefile.tar.gz -o/tmp/mylarge.tar.gz 这样,docker容器就可以构建包含文件的容器了 如何缓存此文件 PS:也可以在安装之前在上下载该文件,并使用dockerADD将其放入docker容器中。只要您的doc
.tar.gz
文件
这个.tar.gz
永远不会更改,所以最好将其缓存
.tar.gz
在我的Dockerfile中下载:
runcurlftp://mycompanyftp.com/foo/bar/mylargefile.tar.gz -o/tmp/mylarge.tar.gz
这样,docker容器就可以构建包含文件的容器了
如何缓存此文件
PS:也可以在安装之前在
上下载该文件,并使用dockerADD
将其放入docker容器中。只要您的dockerfile
中有此命令,这是不可能的
相反,我建议您将此命令放在.travis.yml
文件中,并作为预构建活动的一部分下载该文件:
before_install: |
if ! [ -f ./src/mylarge.tar.gz ]; then
curl ftp://mycompanyftp.com/foo/bar/mylargefile.tar.gz -o ./src/mylarge.tar.gz;
fi
install: |
./scripts/build.sh;
script: |
./scripts/test-integration.sh;
cache:
directories:
- $TRAVIS_BUILD_DIR/src/
after_success: |
./scripts/deploy.sh;
如您所见,如果文件不存在,安装前的部分将下载该文件。cache
部分将告诉Travis保留/src/
目录,并在下一次构建开始时将其还原,以便不会再次下载
在dockerfile
中,您现在要做的不是下载,而是将本地文件复制到容器中:
COPY ./src/mylargefile.tar.gz /tmp/mylargefile.tar.gz
您可以阅读有关Travis CI缓存的更多信息。您可以使用,并将文件下载到,例如/tmp/cached/
。这是否回答了您的问题?