がべーじこれくしょん

技術系とかいろいろ

DIGITSをGitLab CIでテストするためのDockerfileを作った

執筆・創作活動への支援をぜひお願いします🙏
Buy Me A Coffee

本家DIGITSは非常に使いやすいのですが、痒いところに手が届かない部分が多々あるので個人的に魔改造を加えています(おい

魔改造を加えるにあたって、やっぱりCIは組みたいということでGitLabCIを使っています。しかし、DIGITSのテストをGitLabCIで行う上で、いろいろと詰んだのでメモ。

GitLab CI大変だよね

DIGITS本家のテストはTravisCIで行われています。

TravisCIは、matrixを使うことによってテストを並行して実行することができるため、DIGITSの.travis.ymlも並行実行を前提に組まれています。

しかし、今のところ、GitLab CIは各テストを直列実行することしかできません。(実は並列実行できますよ的な情報ありましたら教えていただけると嬉しいです…)

【追記:2017/08/14】このサイト(https://tech.drecom.co.jp/easy-ci-development-using-gitlab-ci/)を見る限り、jobの並列実行ができるようです。現在調査中です。

そこで、apt-getの手間だけでも減らすべく、before_scriptの部分だけDockerfileにしてしまいました。

FROM ubuntu:trusty

RUN set -x && \
    apt-get update && \
    apt-get -y install build-essential cmake cython git graphviz libboost-filesystem-dev libboost-python-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev libprotobuf-dev libsnappy-dev protobuf-compiler python-dev python-flask python-gevent python-gevent-websocket python-gflags python-h5py python-matplotlib python-mock python-nose python-numpy python-opencv python-pil python-pip python-protobuf python-psutil python-pydot python-requests python-scipy python-six python-skimage && \
    apt-get -y install closure-linter python-flake8 && \
    apt-get -y install libopenblas-base libopenblas-dev && \
    pip install virtualenv && \
    pip install virtualenvwrapper && \
    source /usr/local/bin/virtualenvwrapper.sh && \

DockerHubからpullしたいよね

そう思ってDockerHubにも上げました。

https://hub.docker.com/r/musaprg/digits-gitlabci/

docker pullすればそのまま使えます。

$ sudo docker pull musaprg/digits-gitlabci

docker pullする場合は、apt-get upgradeを忘れずにお願いします。

また、本家側の.travis.ymlに変更があった場合は、逐一このDockerfileを書き換えれば問題無いと思います。

僕も使うのでDocker Hubのほうも気まぐれで更新するかもしれません…( ˘ω˘ )