Getting fed up of polluting my laptops with every database, queue and datastore
on the internet with brew, website downloads or macports... I've put them
all in one Docker Compose file, given them reasonable defaults and wherever
possible configured mounted volumes for persistence.
- Install Docker: https://docs.docker.com/install/
- Increase Docker's memory to 4GB https://docs.docker.com/docker-for-mac/#advanced
Below are the various components that run and useful information about them.
Elasticsearch 6.5.3 running with -Xms256m -Xmx256m and xpack.security.enabled=false
Kibana is running on: http://localhost:5601
It's worth considering xpack security or basic auth in production
A container running Jaeger for application tracing. Ports are configured for both Jaeger and Zipkin collectors including http. Personally, I would always recommend making use of a Jaeger library and sending metrics to a UDP (stateless) collector.
Web UI: http://localhost:16686
A container running as S3 compatible object store.
Access key: minio secret key: minio123
You can access the web interface at http://127.0.0.1:9000 using the above credentials.
A Percona 5.7 container with: utf8mb4 as default, sql_mode a little less
restrictive: NO_ENGINE_SUBSTITUTION and slow query logging.
Default user: root password: pa55w0rd
Don't use root user for applications in production
A nats server.
There is an instance of natsboard running at: http://localhost:18222
A rabbitmq server with management interface.
Default user: guest password: guest
Always remove the guest user in production and use application specific users
The RabbitMQ Management UI is at: http://localhost:15672
A redis container with --appendonly yes.
Consider enabling and using auth in production or listening on 127.0.0.1 only
There is a container running Redis Commander at: http://localhost:16379
Clone this repo somewhere and open a terminal inside it.
To start all the containers in the foreground, type:
docker-compose up
Ctrl+C will stop the containers.
To start them in the background, type:
docker-compose up -d
To start a single component for example mysql in the foreground, type:
docker-compose up mysql
as above, add the -d flag to run it in the background:
docker-compose up -d mysql
To stop all components and cleanup the containers and networks:
docker-compose down
Docker Compose has fabulous documentation: https://docs.docker.com/compose/overview/