<img src=“https://travis-ci.org/Mike-Petersen/mission-control.svg?branch=master” alt=“Build Status” /> <img src=“https://codeclimate.com/github/Odania-IT/mission-control/badges/gpa.svg” /> <img src=“https://codeclimate.com/github/Odania-IT/mission-control/badges/coverage.svg” />
Mission Control is a tool to mange docker servers. It consists of two parts:
-
A rails application to define the dependencies and images that should run on a server.
-
An agent that runs several scripts to start the necessary instances, update the proxy configuration and watch docker events.
The agent and the rails app can be started via docker. You can use fig to start the instances.
docker run -d –restart=always -p 127.0.0.1:27017:27017 -p 127.0.0.1:28017:28017 –name mc_mongodb -v /var/lib/docker_volumes/mc_mongodb:/data/db mongo:latest docker run -d –restart=always –name mc_agent -e “MONGOID_ENV=production” -v /var/run/docker.sock:/var/run/docker.sock –link mc_mongodb:mongodb_1 -p 127.0.0.1:1936:1936 -p 8080:8080 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 odaniait/mission-control-agent:latest docker run -d –restart=always –name mc_admin -e “RAILS_ENV=production” -e “EXPOSE_PORT=80” -e “PROCESS_TYPE=web” –link mc_mongodb:mongodb_1 -p 127.0.0.1:9000:80 odaniait/mission-control:latest
The agent needs to expose all ports that you want to reach from the outside. Unfortunately you have to define it manually like: -p 8080:8080 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 8086:8086 -p 8087:8087
This will expose the port 80 from the proxy to port 8080 on the host.
The agent is in the same repository cause it shares some classes. The Dockerfile for the app is in the agent folder. The Agent only files are located under app/agent.
-
Add mongo authentication
-
Create a proxy to proxy between the haproxy on the different servers
-
Generate general images that could be used by multiple applications (redis, mysql, …)
-
Add private docker registry
-
Take care of order due to dependencies (links)