Code Monkey home page Code Monkey logo

docker-dev-services's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.