在我的travis构建中,我需要先下载一个大的.tar.gz
文件。
此.tar.gz
永远不会改变,所以缓存它是一个好主意。
我在Dockerfile中下载的.tar.gz
:
RUN curl ftp://mycompanyftp.com/foo/bar/mylargefile.tar.gz -o /tmp/mylarge.tar.gz
随着docker容器内部文件的构建。
如何缓存此文件?
PS :也可以在before_install
上下载该文件,并使用docker ADD
将其放入Docker容器中。
答案 0 :(得分:0)
这是不可能的,只要您在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;
如您所见,before_install
部分将下载文件(如果尚不存在)。 cache
部分将告诉Travis保留./src/
目录,并在下一个版本的开始时将其还原,因此不会再次下载。
在您的dockerfile
中,现在要执行的操作(而不是下载)是将本地文件复制到容器中:
COPY ./src/mylargefile.tar.gz /tmp/mylargefile.tar.gz
您可以在docs page上阅读有关Travis CI缓存的更多信息。