Use docker-compose with multiple repositories Use docker-compose with multiple repositories docker docker

Use docker-compose with multiple repositories


You can have your CI build and push images for each service you want to run, and have the production environment run all 3 containers.

Then, your production docker-compose.yml would look like this:

lb:  image: nginx  depends_on:    - rails    - express  ports: 80:80  rails:    image: yourorg/railsapp  express:    image: yourorg/expressapp

Be noted that docker-compose isn't recommended for production environments; you should be looking at using Distributed Application Bundles (this is still an experimental feature, which will be released to core in version 1.13)

Alternatively, you can orchestrate your containers with a tool like ansible or a bash script; just make sure you create a docker network and attach all three containers to it so they can find each other.

Edit: since Docker v17 and the deprecation of DABs in favour of the Compose file v3, it seems that for single-host environments, docker-compose is a valid way for running multi-service applications. For multi-host/HA/clusterised scenarios you may want to look into either Docker Swarm for a self-managed solution, or Docker Cloud for a more PaaS approach. In any case, I'd advise you to try it out in Play-with-Docker, the official online sandbox where you can spin out multiple hosts and play around with a swarm cluster without needing to spin out your own boxes.