我正在尝试使用他们的 docker 图像( Their docker images )在我的本地机器上运行 travis build。他们的指令是 here

我能够下载并运行 docker 机器,我切换到 travis 用户,然后克隆我的 repo。但我不太明白如何运行 travis.yml 文件以便开始构建。

我已经搜索并尝试使用 travis-clitravis-build 但没有成功。我愿意接受有关在运行 travis 之前/同时/之后与 travis 构建交互(当然使用命令行)的建议( 以加快调试速度 )。

最佳答案

我设法拼凑了来自各种来源的 Dockerfile 和我自己的一些来源。有两个图像:一个用于 travis 可用的基础和一个特定于“org/repo”GitHub 项目的项目(确保使用真实项目名称替换出现的项目)。它使用本地未提交的存储库版本(因此是 sed s)。在 travis-local-build 启动并运行后,./build.sh 将触发类似于 travis-ci.org 的 CI 构建。

Dockerfile.travis-本地

#!docker build -f Dockerfile.travis-local -t travis-local .

FROM travisci/ci-amethyst:packer-1512508255-986baf0
USER travis

WORKDIR /home/travis
RUN git clone https://github.com/travis-ci/travis-build.git

WORKDIR travis-build
RUN bash -lc "gem install travis"
RUN bash -lc travis # to create ~/.travis
RUN ln -s $(pwd) ~/.travis/travis-build
RUN bash -lc "bundle install"
#RUN bash -lc "bundler add travis"
RUN bash -lc "bundler binstubs travis"
RUN echo alias travis="~/.travis/travis-build/bin/travis" >> ~/.bashrc

Dockerfile.travis-local-build
#!docker build -f Dockerfile.travis-local-build -t travis-local-build . && docker run -ti travis-local-build

FROM travis-local
USER travis

WORKDIR /home/travis/build
ADD --chown=travis . org/repo

WORKDIR org/repo
RUN chmod +x gradlew
# Alias not recognized, but in interactive mode `travis compile` works without path.
RUN bash -lc "~/.travis/travis-build/bin/travis compile --no-interactive > build.sh"
RUN sed -re 's/^.*travis_wait_for_network '\''.*$/echo DISABLED &/mg' build.sh --in-place
RUN sed -re 's/^.*apt-get update.*$/echo DISABLED &/mg' build.sh --in-place
RUN sed -re 's/^.*travis_cmd git.*(fetch|reset|checkout).*$/echo DISABLED &/mg' build.sh --in-place
RUN chmod +x build.sh

WORKDIR /home/travis/build
RUN sudo ln -s org/repo/build.sh build.sh
CMD ["bash"]

免责声明:我是 Docker 的新手,只使用了几个小时,所以我可能弄错了一些概念。在评论中表示赞赏的任何指针。

关于docker - 使用 docker 在本地运行 Travis,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35837905/

10-16 12:40