カイワレの大冒険 Third

技術的なことや他愛もないことをたまに書いてます

Packerのcompression_levelオプションを試してみた

Packercompression_levelというオプションがあったので、使ってみた。 以下のような感じで、post-processorsでcompression_levelを指定するだけ。0から9まで指定できて、0が圧縮せず、9が圧縮率最大。デフォルトは1。

"post-processors": [
  {
    "type": "vagrant",
    "compression_level": 9,
    "output": "./CentOS-6.4-x86_64.box"
  }

んで、やってみた。

  • オプション指定しなかった場合のboxのファイルサイズ: 503M
  • 「"compression_level": 9」を指定した場合のboxのファイルサイズ: 502M

多分、なんか間違ってる。ぐぐったら、なんか常にデフォルト値が使われてるとか載ってたけど、PACKER_LOGって環境変数使えば、デバッグログ出せるらしいのでやってみる。 こんな感じで有効にできる。

PACKER_LOG=/tmp/packer.log packer build ./test.json

ログ見ると以下のようにちゃんと出てる。

Compressing with gzip compression level: 9

うむ。しかし、サイズ減らない。ダメだ。実行時間だけが増えていく。。。

https://github.com/mitchellh/packer/blob/master/post-processor/vagrant/util.go 見る限り、gzipしてるだけだけど、イメージの圧縮は厳しいかな。 以上。切ない。