When exposing a port externally, it seems Docker only actually exposes it if you specify the *internal* port as `xxxx/tcp`. So add that on if it's not there.
@@ -224,6 +224,8 @@ class Service(object):
port = str(port)
if ':' in port:
port = port.split(':')[-1]
+ if '/' not in port:
+ port = "%s/tcp" % port
ports.append(port)
container_options['ports'] = ports