Convert docker image into rocket aci

2015/02/12 追記


Trying out Rocket (Use ACI) ではcoreosが提供しているetcdのaciを使用してみましたが、今回は既存のdocker imageをaciに変換して使ってみる

docker2aciのインストール

docker2aci で変換できる。docker to aciという意味と思われます

go!

$ go get github.com/appc/docker2ac
$ rehash

docker hubからイメージを変換

docker2aci docker image名でイメージをダウンロード・変換できる

$ docker2aci lorentzca/debian-wheezy-base
Downloading layer: c16645f2b6f50162d70acab19c7cf7f9988787455fed388763b41de78ca078c8

Generated ACI(s):  
lorentzca-debian-wheezy-base-latest.aci  

起動

早速起動してみる

--debugオプションつけて起動

vagrant@vagrant:~/rocket-v0.2.0$ sudo ./rkt --debug run ../lorentzca-debian-wheezy-base-latest.aci  
2015/02/11 14:54:01 Unpacking stage1 rootfs  
2015/02/11 14:54:01 Writing stage1 init  
2015/02/11 14:54:01 Wrote filesystem to /var/lib/rkt/containers/347da0bd-ce10-4a75-8f1d-bacc66161b82  
2015/02/11 14:54:01 Loading image sha512-59113ba9c143b6f3bfd26823a97511086b0fd84184fdc80ed8e6e1fd10289b6d  
run: error setting up stage0: error setting up image sha512-59113ba9c143b6f3bfd26823a97511086b0fd84184fdc80ed8e6e1fd10289b6d: error extracting ACI: error extracting tarball: link /var/lib/rkt/containers/347da0bd-ce10-4a75-8f1d-bacc66161b82/stage1/opt/stage2/sha512-59113ba9c143b6f3bfd26823a9751108/rootfsbin/dnsdomainname /var/lib/rkt/containers/347da0bd-ce10-4a75-8f1d-bacc66161b82/stage1/opt/stage2/sha512-59113ba9c143b6f3bfd26823a9751108/rootfs/bin/domainname: no such file or directory  

おーん

でもdnsdomainnameは存在する

vagrant@vagrant:~/rocket-v0.2.0$ sudo ls -l /var/lib/rkt/containers/347da0bd-ce10-4a75-8f1d-bacc66161b82/stage1/opt/stage2/sha512-59113ba9c143b6f3bfd26823a9751108/rootfs/bin/dnsdomainname  
-rwxr-xr-x 1 root root 18760 Feb 11 14:54 /var/lib/rkt/containers/347da0bd-ce10-4a75-8f1d-bacc66161b82/stage1/opt/stage2/sha512-59113ba9c143b6f3bfd26823a9751108/rootfs/bin/dnsdomainname

エラーに出てるrootfsbinrootfs/binの間違い?

なんでこんなことになってるのか調べる

[追記]

これっぽい気が Fix creation of HardLinks.

でももうマスターにマージされてるんじゃ…うーん

そうこうしてるうちにバージョン0.3.1が出ているではないか。update!解決せず!(解決したらしたで腑に落ちない感じだけど…)

tar周りの不具合がちらほら上がっていたのでこれもその一つのハマリポイントなきがする…。ディストリによってtarの挙動が違うとかなのかな?

coreosだめだった

core@localhost ~/rocket-v0.3.1 $ sudo ./rkt --debug run ../coreos-apache-latest.aci  
2015/02/12 15:15:36 Preparing stage1  
2015/02/12 15:15:36 Wrote filesystem to /var/lib/rkt/containers/03c22f43-75f0-4f44-a3d9-9dd5f294b0da  
2015/02/12 15:15:36 Loading image sha512-bfb969cdf71a0ce0129b8f05658460afd6f95efab17240f655cccd3209ef3e1e  
run: error setting up stage0: error setting up image sha512-bfb969cdf71a0ce0129b8f05658460afd6f95efab17240f655cccd3209ef3e1e: error expanding app image: error extracting ACI: error extracting tarball: link /var/lib/rkt/containers/03c22f43-75f0-4f44-a3d9-9dd5f294b0da/stage1/rootfs/opt/stage2/sha512-bfb969cdf71a0ce0129b8f05658460af/rootfs./bin/bzip2 /var/lib/rkt/containers/03c22f43-75f0-4f44-a3d9-9dd5f294b0da/stage1/rootfs/opt/stage2/sha512-bfb969cdf71a0ce0129b8f05658460af/rootfs/bin/bunzip2: no such file or directory