Switch from all-in-one Docker image to Docker Compose for setting up Craton development environment

Registered by Thomas Maddox

The existing implementation [1] doesn't appear to quite follow the Docker philosophy suggesting smaller containers, each with a single, clear purpose (similar to microservices) in that it runs the API server as well as the DB on the same container. This coupling isn't as efficient as it could be since you cannot blow away the API server container or DB separately without impacting the other.

My suggestion is that it'd be cleaner to be able to pull the Craton repository and simply run `docker-compose up --build craton` and get a separate DB container, DB REPL container, and Craton API (as well as any other services, maybe workers?) spun up for you. Additionally, it'd be especially nice to be able to reference your source code directory so that Docker can mount it and you can separate your source code from the execution environment, but not have to do anything more than change the code locally and restart the container to play with it.

[1]: https://github.com/openstack/craton/blob/master/Dockerfile

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Thomas Maddox
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.