はじめに
- タイトル通り
- 昨日の第3回 コンテナ型仮想化の情報交換会での @y_uuk1 さんの話を聞いてやってみた
参考
- 第3回 コンテナ型仮想化の情報交換会@大阪 (コンテナ型VMや関連するカーネル等の技術が話題の勉強会)に参加した
- Increase max image depth to 127 #2897
- dotcloud/docker
- aufs
準備
以下のような感じで 127
行以上の Dockerfile
を生成した。
#!/bin/sh for i in `seq 1 1 127` do echo "RUN ls" >> Dockerfile done exit 0
ひたすら ls
するだけの Dockerfile
を作成。
実行
asciinema
asciinema で docker build
を録画してみたw
結果
おお、確かに 127 parents
とか出てるし何かしらの制限が掛かっているようだ。
何がそうさせる?
ソースコード
このあたりで 127
を決め打ちされていて、それは aufs
自身の設定に由来するようだ。こちらでもこの件について言及されている。
まとまってないまとめ
Dockerfile
の127
行制限はaufs
自身の制限に由来している- こちらでも言及されているが
&&
でつなぐというのもあり - コマンドをシェルスクリプト化して
RUN hoge.sh
とかさせれば回避出来そう - あとは
chef-apply
とかpuppet-apply
とかしても良いのでは? - そもそも
127
行を超えるようなDockerfile
があるのかな...
おまけ(ターミナルの動作を記録する)
ターミナルの動作を記録するソフトを色々と試した。
インストールしたもの
brew install ttyrec brew install libpng # ttyrec を使う為 brew install freetype # ttyrec を使う為 sudo pip install --upgrade asciinema