1) The author parallelized unit tests by running them in Docker containers on multiple Jenkins slaves to reduce test runtime from 25 minutes to 3 minutes.
2) Configuration management integration with Docker and challenges around dependencies, layering, and the "PID 1" problem were discussed.
3) Additional topics discussed included trimming container fat, container layering questions, linking containers, maintenance profiles, and open-sourcing projects using Docker.
12. Configuration Management
How to integrate Ansbile?
sshd adds +40MB (seems wrong)
installed Ansible in base image
maybe provision with chroot? (but lose layering)
Packer.io? isn't quite there yet
CM integration with Docker rumored
[soon to be fixed]
13. Why not just use Ansible
directly on slaves?
continuous integration is continually integrating itself!
automatic refresh (pull) before running tests
easy to scale more slaves
slaves re-usable for other tasks - not polluted with dependencies
part of the experiment!
14. The "PID 1" problem
needs to watch sub-processes if they die and re-launch
can't be SIGKILL'd
some hacks needed to quiet upstart
we used supervisord - works well
init integration coming (systemd, SysV, etc.)
[soon to be fixed]
15. libcontainer
new in version 0.9
nsinit allows you to attach
might be implemented as "docker exec"
lxc namespacing still has lxc-attach
16. Registry is slow from the cloud
push/pulling from local network to EC2 is painful
+1GB containers!
how about a local mirror?
EDIT: added to the docker-registry a few weeks ago
[fixed]
17. Trimming the fat
installing packages dumps a TON of stuff on the system
great way to find out what a package does
dpkg --no-install-recommends
filter out /usr/share/{man | doc | info}
trash apt cache (+100MB)
flatten: docker export -> import
[solvable]
19. Linking containers
cumbersome.
lots of verbose ENV VARS
ambassador container (hacky)?
service discovery - serf, etcd, etc?
DB_PORT_3306_TCP=tcp://127.0.0.1
DB_PORT_3306_TCP_ADDR=127.0.0.1
DB_PORT_3306_TCP_PORT=3306
DB_PORT_3306_TCP_PROTO=tcp
...
[unknown]
20. Unknown maintenance profile
not all *nix tools ready for namespacing
free & top are broken (shows full system memory allocation)
logs (on aufs, inside the container - good/bad?)
problem? copy container locally, inspect?