The Cloud Image team is looking at making images available with container frameworks pre-installed. However, we are unable to pre-install the Docker framework:
utlemming@utl-docker:/tmp$ sudo ubuntu-device-flash core rolling --channel=edge --output=/tmp/test2.img --cloud --size=10 --install=docker
Determining oem configuration
Starting download of generic-amd64
40.93 KB / 40.93 KB [======================================================================================] 100.00 % 160.98 KB/s
Done
Fetching information from server...
Downloading and setting up...
41.48 MB / 41.48 MB [========================================================================================] 100.00 % 9.03 MB/s
97.68 MB / 97.68 MB [=======================================================================================] 100.00 % 16.51 MB/s
Installing generic-amd64
Starting download of generic-amd64
40.93 KB / 40.93 KB [======================================================================================] 100.00 % 188.38 KB/s
Done
Installing docker
Starting download of docker
8.36 MB / 8.36 MB [========================================================================================] 100.00 % 134.37 KB/s
Done
unable to unmount dir for image: umount: /tmp/diskimage026966305/system: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
panic: cannot unmap mounted partitions
goroutine 1 [running, locked to thread]:
launchpad.net/goget-ubuntu-touch/diskimage.(*CoreGrubImage).Unmap(0xc208284500, 0x0, 0x0)
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/diskimage/core_grub.go:176 +0x9c
main.func·005()
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/ubuntu-device-flash/core.go:332 +0x11a
main.(*CoreCmd).setup(0xcf0920, 0x7fc3bc040110, 0xc208284500, 0xc2081c6180, 0x3, 0x7fc3bc041620, 0xc208251e80)
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/ubuntu-device-flash/core.go:367 +0xc37
main.func·004(0x0, 0x0)
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/ubuntu-device-flash/core.go:280 +0x171
main.(*CoreCmd).Execute(0xcf0920, 0xc20800a100, 0x1, 0x8, 0x0, 0x0)
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/ubuntu-device-flash/core.go:285 +0x20d9
github.com/jessevdk/go-flags.(*Parser).ParseArgs(0xc2080566c0, 0xc20800a000, 0x8, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0)
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/github.com/jessevdk/go-flags/parser.go:241 +0x8b8
main.main()
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/ubuntu-device-flash/main.go:62 +0x3ac
goroutine 5 [syscall, 1 minutes]:
os/signal.loop()
/usr/lib/go/src/os/signal/signal_unix.go:21 +0x1f
created by os/signal.init·1
/usr/lib/go/src/os/signal/signal_unix.go:27 +0x35
goroutine 6 [chan receive, 1 minutes]:
launchpad.net/snappy/partition.func·005()
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/snappy/partition/partition.go:270 +0x52
created by launchpad.net/snappy/partition.setupSignalHandler
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/snappy/partition/partition.go:275 +0x21e
goroutine 17 [syscall, 1 minutes, locked to thread]:
runtime.goexit()
/usr/lib/go/src/runtime/asm_amd64.s:2232 +0x1
goroutine 109 [select]:
net/http.(*persistConn).writeLoop(0xc208296580)
/usr/lib/go/src/net/http/transport.go:945 +0x41d
created by net/http.(*Transport).dialConn
/usr/lib/go/src/net/http/transport.go:661 +0xcbc
goroutine 108 [IO wait]:
net.(*pollDesc).Wait(0xc208399330, 0x72, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208399330, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2083992d0, 0xc208260000, 0x2000, 0x2000, 0x0, 0x7fc3bc033c40, 0xc2082526f0)
/usr/lib/go/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208036428, 0xc208260000, 0x2000, 0x2000, 0x0, 0x0, 0x0)
/usr/lib/go/src/net/net.go:121 +0xdc
crypto/tls.(*block).readFromUntil(0xc20822c840, 0x7fc3bc0353e0, 0xc208036428, 0x5, 0x0, 0x0)
/usr/lib/go/src/crypto/tls/conn.go:454 +0xe6
crypto/tls.(*Conn).readRecord(0xc20826c580, 0x17, 0x0, 0x0)
/usr/lib/go/src/crypto/tls/conn.go:539 +0x2da
crypto/tls.(*Conn).Read(0xc20826c580, 0xc208287000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/lib/go/src/crypto/tls/conn.go:904 +0x166
net/http.noteEOFReader.Read(0x7fc3bc03ae18, 0xc20826c580, 0xc2082965d8, 0xc208287000, 0x1000, 0x1000, 0x7dd8a0, 0x0, 0x0)
/usr/lib/go/src/net/http/transport.go:1270 +0x6e
net/http.(*noteEOFReader).Read(0xc208248c00, 0xc208287000, 0x1000, 0x1000, 0xc208010000, 0x0, 0x0)
<autogenerated>:125 +0xd4
bufio.(*Reader).fill(0xc208243ce0)
/usr/lib/go/src/bufio/bufio.go:97 +0x1ce
bufio.(*Reader).Peek(0xc208243ce0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/lib/go/src/bufio/bufio.go:132 +0xf0
net/http.(*persistConn).readLoop(0xc208296580)
/usr/lib/go/src/net/http/transport.go:842 +0xa4
created by net/http.(*Transport).dialConn
/usr/lib/go/src/net/http/transport.go:660 +0xc9f
goroutine 81 [chan receive, 1 minutes]:
main.func·003()
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/ubuntu-device-flash/core.go:261 +0x1e8
created by main.(*CoreCmd).Execute
/build/buildd/goget-ubuntu-touch-0.23/obj-x86_64-linux-gnu/src/launchpad.net/goget-ubuntu-touch/ubuntu-device-flash/core.go:264 +0x2015
With latest ubuntu-device-flash (from trunk) the error is different, and still fails: evasys: /tmp/snappy$ sudo ubuntu-device-flash core 15.04 --channel edge --enable-ssh --developer-mode --install=docker --output x86.img ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ] 100.00 % 58.47 KB/s ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ] 100.00 % 87.16 KB/s ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= =] 100.00 % 498.45 KB/s
rsalveti@
Determining oem configuration
Starting download of generic-amd64
40.93 KB / 40.93 KB [======
Done
Fetching information from server...
Downloading and setting up...
Installing generic-amd64
Starting download of generic-amd64
40.93 KB / 40.93 KB [======
Done
Installing docker
Starting download of docker
8.36 MB / 8.36 MB [======
Done
docker failed to install: exit status 1