Skip to content

Set of services (ELK, Mongo, RabbitMQ, and others) you can run on demand with Docker Compose

License

Notifications You must be signed in to change notification settings

iblazhko/docker-dev-services

Repository files navigation

Docker Dev Services

Description

This is a tool to run set of containerized services during development. It makes it easier to start / stop set of services on demand.

Supported services:

  • ELK stack (Elasticsearch + Logstash + Kibana)
  • EventStoreDB
  • InfluxDB
  • MongoDB
  • PostgreSQL
  • RabbitMQ
  • Redis
  • Seq
  • SQL Server
  • Vault

Prerequisites

Overview

Set of services is started using Docker/Podman Compose.

Each service in the set is defined in its own directory services/<service-name>-<version>/service.yaml.

All services use bridge network devsvcnet (defined in services/network.yaml), so they are immediately available on the host machine.

Sets are defined in service-set/set.yaml files. There are two sets provided out of the box:

  • default: EventStoreDB, RabbitMQ, MongoDB, PostgreSQL, Seq
  • _template: this set has all the supported services included and can be used as a starting point when creating own sets

Usage

  • Clone or copy this repository locally, or download from releases page
  • Create a service set file service-sets/<set>.local.yaml (there is a rule in .gitignore to exclude .local.yaml files from source control); use _template_.yaml as a template and do not forget to change set name to something meaningful
  • Review included services service.yaml definitions. If you need to change environment variables to a service, add file .env/<service-name>-<version>.env. Typically this would be used to change default credentials. See corresponding service service.env file for a reference.

It is recommended to organize sets by products / use cases. E.g. if Product1 us using ELK and MongoDB, and Product2 uses ELK, Postgres, and Redis, you may have following sets:

product-sets/prod1.local.yaml

set: prod1
services:
  - elasticsearch-8.3
  - kibana-8.3
  - mongo-4.2

product-sets/prod2.local.yaml

set: prod2
services:
  - elasticsearch-8.3
  - kibana-8.3
  - postgres-14.4
  - redis-7.0

NOTE: You can define multiple custom service sets, however it is only possible to use them one at a time. All services use same bridge network, so if a service is included in multiple sets, Docker Compose will allocate distinct names for the service in different sets, but they will still use same network port, so only one service can be active at a time that uses that port.

Start

Start service set by name:

start.ps1 -Set <set-name>

By default, docker engine is used, if you need to use podman specify this using -Engine parameter:

start.ps1 -Set <set-name> -Engine podman

Stop

Stop service set that was previously started by start.ps1 <set-name>.

stop.ps1

About

Set of services (ELK, Mongo, RabbitMQ, and others) you can run on demand with Docker Compose

Resources

License

Stars

Watchers

Forks

Packages

No packages published