2021年5月6日木曜日

DockerHub / GitHub Actions での docker build が No space left on device だったので CircleCI でビルドした話

無料になったIntel compilerをCentOS8にインストールしてみる - Qiita
Intel compilerが2021年になってから実質的に無料になってしまったというのを知り、勢いで作ったのが↓のリポジトリ
https://github.com/srz-zumix/docker-icx
(現在は名前変えてます。https://github.com/srz-zumix/docker-oneapi-hpckit
公式がサポートしてない Ubuntu 16.04 で oneAPI のセットアップをしてます。
(intel-basekit と intel-hpckit。パッケージリストはこちらを参照)

DockerHub Automated Build

で、いつもどおり DockerHub の Automated Build でビルドしたんですが、「No space left on device」でビルドできませんでした。


デカイからなぁ・・(上が公式、下が自前)

GitHub Actions でビルド

space を増やすのもめんどくさそうなので、別の CI サービスを使おうと考え、GitHub Actions でビルド、DockerHub に push するようにしてみました。
(とりあえず build までで https://github.com/srz-zumix/docker-icx/blob/main/.github/workflows/dockerhub.yml

「No space left on device」!!
ググると prune しろとか出てきたので試すも変わらず。うーん。

CircleCI ・・・その前に

じゃあ、しょうがないし他のサービスにするか。
というわけで次点で CircleCI !というふうに決めたわけじゃないです。
拙著「あつまれ CI サービス タダではじめる継続的インテグレーション生活」に記載されている各CIサービスの実行環境の空きディスク容量を参考にして小さいサービスを避けて決めました。




これは本から一部抜粋しましたが、GitHub Actions の Linux エージェントは 20GB ほどしか空きがないのでダメなのもなんとなく納得。
CircleCI の Linux machine:true は 90GB ありそうだったので大丈夫やろ、という気持ちで決めました。
CircleCI でビルド

というわけで、CircleCI でビルドしました。
目論見通り成功です!


最後に

作ったイメージはこちらにあります。
https://hub.docker.com/r/srzzumix/oneapi-hpckit
とはいえ、公式のイメージがあるので特に理由(Ubuntu 16.04 じゃなきゃだめとか)がなければそちらを使うのがいいと思います。(↑のは1レイヤーにまとめすぎて pull が遅い…)
https://hub.docker.com/r/intel/oneapi-hpckit

また intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic パッケージだけをインストールしたイメージも作ったのでこちらに置いてあります。
https://hub.docker.com/r/srzzumix/oneapi-cxx
hpc-kit は結構イメージサイズがデカイので、 C++ Compiler だけ欲しい人がそのパッケージだけインストールしたイメージを作ると良さそうです。
私はこちらを Intel C++ Compiler でのビルド・テストに利用したいと思ってます。

今回は以上。ではでは。


0 件のコメント:

コメントを投稿