Web UI for docker-compose
Overview
A simple sinatra app that helps selectively start/stop containers from the given docker-compose stack.
The main use case for the app is grouping of dockerized services. Consider docker-compose.yml with 20 containers (SOA!).
Developers working on different parts of the whole system are going to need different subsets of the whole stack.
Such subsets can be configured using .dcui.yml file, saved in the same directory where docker-compose file lives.
Example .dcui.yml for docker-compose.yml containing services: mysql, redis, elasticsearch_dev, elasticsearch_test, kafka, traefik_dev, traefik_test:
system-testing:
- mysql
- redis
- elasticsearch_test
- traefik_test
development:
- mysql
- redis
- elasticsearch_dev
- kafka
- traefik_dev
See the example directory
Installation
gem install dcui
Execution
Runtime configuration via env vars:
-
DCUI_APP_DIR- path to directory withdocker-compose.ymland.dcui.yml. Default:pwd -
DCUI_FILE_NAME- name of thedocker-composefile. Default:docker-compose.yml -
DCUI_PORT- port on which the UI runs. Default: 4567
Start with command:
dcui
Sinatra runs in foreground. The UI is now present at http://localhost:4567
Development roadmap
- start individual containers
- stop individual containers
- stop/start containers in batches
- containers groups (e.g. local development, local cucumber)
- make it look not so ugly
- considering adding inheritance to
.dcui.ymlsections