本家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にも上げました。
docker pull
すればそのまま使えます。
$ sudo docker pull musaprg/digits-gitlabci
docker pull
する場合は、apt-get upgrade
を忘れずにお願いします。
また、本家側の.travis.yml
に変更があった場合は、逐一このDockerfileを書き換えれば問題無いと思います。
僕も使うのでDocker Hubのほうも気まぐれで更新するかもしれません…( ˘ω˘ )