progrium/dokku — pull request #94 by eugeneware (2013-07-17 12:30:03+00:00)
Title: Central Port registry to preserve docker container ports on reboot

When a server reboots all the dynamic port mappings from Docker get reset leading to 502 bad gateway errors in Nginx, or even worse: the wrong servers displaying for different host names.

This PR addresses the issue in #82

It creates a new upstart service called `dokku-ports.conf` which is run after `docker` which exposes a simple HTTP service that keeps track of the next free `docker` port.

The `dokku` script can then ask this service for the next service and then bind it directly upon container creation, rather than a dynamic binding.

The next available port is stored in `~git/port`. Upon startup the service checks the ports on all the running docker containers, and makes sure that the next port won't conflict with any running containers.

This is an alternative to rewriting the `nginx.conf` files in this [alternative pull request](https://github.com/progrium/dokku/pull/88)