Skip to content

Latest commit

 

History

History
436 lines (382 loc) · 7.78 KB

README.md

File metadata and controls

436 lines (382 loc) · 7.78 KB

docker-compose collection

Contents

Database

Aerospike

services:
  db-aerospike:
    image: aerospike/aerospike-server:4.5.2.2
    ports:
      - "3000:3000"

Clickhouse

services:
  db-clickhouse:
    image: yandex/clickhouse-server
    ports:
      - "8123:8123"
      - "9000:9000"
      - "9009:9009"

MariaDB

services:
  db-mariadb:
    image: mariadb
    restart: unless-stopped
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: example
      MYSQL_USER: example
      MYSQL_PASSWORD: example
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_RANDOM_ROOT_PASSWORD: 'no'
    volumes:
      - mariadb:/var/lib/mysql
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db-mariadb
      MYSQL_USER: example
      MYSQL_PASSWORD: example

volumes:
  mariadb:

Mongo

services:
  db-mongo:
    image: mongo
    restart: unless-stopped
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_DATABASE: db
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    volumes:
      - mongo:/data/db

  db-mongo-express:
    image: mongo-express
    restart: unless-stopped
    ports:
      - "8081:8081"
    environment:
      ME_CONFIG_MONGODB_SERVER: db-mongo
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example

volumes:
  mongo:

MySQL

services:
  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: unless-stopped
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE:
      MYSQL_USER:
      MYSQL_PASSWORD:
      MYSQL_ALLOW_EMPTY_PASSWORD:
      MYSQL_RANDOM_ROOT_PASSWORD:
      MYSQL_ONETIME_PASSWORD:
    volumes:
      - mysql:/var/lib/mysql
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db

volumes:
  mysql:

Postgres

services:
  db-postgres:
    image: postgres:11.3
    container_name: postgres_container
    restart: unless-stopped
    tty: true
    ports:
      - "5432:5432"
    environment:
      - PGHOST=localhost
      - PGDATABASE=postgres
      - PGUSER=postgres
      - POSTGRES_PASSWORD=
    volumes:
      - my-db-postgres:/var/lib/postgresql/data

volumes:
  my-db-postgres:

Logs

Messaging

Kafka

services:
  zk:
    image: confluentinc/cp-zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181

  kafka:
    image: confluentinc/cp-kafka
    ports:
      - "9092:9092"
    depends_on:
      - zk
    environment:
      KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092"
      KAFKA_ZOOKEEPER_CONNECT: zk:2181
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

NATS

services:
  nats:
    image: nats:1.4.1
    ports:
      - "4222:4222"

RabbitMQ

services:
  rabbitmq:
    image: rabbitmq:3.7-management-alpine
    restart: unless-stopped
    ports:
      - "5672:5672" # queue connection
      - "15672:15672" # management UI
    environment:
      - RABBITMQ_DEFAULT_USER=
      - RABBITMQ_DEFAULT_PASS=
      - RABBITMQ_DEFAULT_VHOST=/
    volumes:
      - rabbitmq:/var/lib/rabbitmq
    hostname: rabbitmq

volumes:
  rabbitmq:

Metrics

Grafana

  grafana:
    container_name: grafana
    image: grafana/grafana:6.2.1
    ports:
      - "3000:3000"
    volumes:
      - grafanadata:/var/lib/grafana
    networks:
      - metrics_net
    restart: always

volumes:
  grafanadata: {}
networks:
  metrics_net:

Graphite

  graphite:
    image: nickstenning/graphite
    ports:
      - "80:80"
      - "2003:2003"

VictoriaMetrics

Just take it there https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/docker-compose.yml

Proxy

Envoy

  proxy-envoy:
    build:
      context: .
      dockerfile: envoyproxy/envoy
    volumes:
      - ./envoy.yaml:/etc/envoy.yaml
    networks:
      - envoymesh
    expose:
      - "80"
      - "8001"
    ports:
      - "8000:80"
      - "8001:8001"

networks:
  envoymesh: {}

Nginx

services:
  web:
    image: nginx
    ports:
      - "8080:80"
    environment:
      - NGINX_HOST=foobar.com
      - NGINX_PORT=80
    volumes:
      - ./mysite.template:/etc/nginx/conf.d/mysite.template
    # command: [nginx-debug, '-g', 'daemon off;']

Services

Consul

  consul:
    image: consul
    command: "agent -dev -bind=0.0.0.0 -client=0.0.0.0 -server -ui -bootstrap -config-file=/config/consul.json -enable-script-checks"
    ports:
      - 8500:8500
    dns_search: .
    volumes:
      - ./consul.json:/config/consul.json

Zookeeper

services:
  zoo1:
    image: zookeeper
    restart: always
    hostname: zoo1
    ports:
      - 2181:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
      ZOO_TICK_TIME: 2000
      ZOO_INIT_LIMIT: 5
      ZOO_SYNC_LIMIT: 2
      ZOO_MAX_CLIENT_CNXNS: 60
      ZOO_STANDALONE_ENABLED: true
      ZOO_AUTOPURGE_PURGEINTERVAL: 0
      ZOO_AUTOPURGE_SNAPRETAINCOUNT: 3

  zoo2:
    image: zookeeper
    restart: always
    hostname: zoo2
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888

  zoo3:
    image: zookeeper
    restart: always
    hostname: zoo3
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888

Storage

Memcached

services:
  memcached:
    image: memcached:1-alpine
    restart: unless-stopped
    ports:
      - "11211:11211"

Redis

services:
  redis:
    image: redis:5-alpine
    restart: unless-stopped
    ports:
      - "6379:6379"
    volumes:
      - redis:/data
    command: redis-server --appendonly yes

volumes:
  redis:

Minio

services:
  minio:
    image: minio/minio:RELEASE.2020-04-02T21-34-49Z
    restart: unless-stopped
    ports:
      - "9001:9000"
    volumes:
      - data1-1:/data1
      - data1-2:/data2
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server start
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

volumes:
  data1-1:
  data1-2:

Source: https://github.com/minio/minio/blob/master/docs/orchestration/docker-compose/docker-compose.yaml

Search

ELK

# Required on Linux:
# sudo sysctl -w vm.max_map_count=262144
# sudo sh -c 'echo "vm.max_map_count=262144" >> /etc/sysctl.conf'
# https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html

services:
  elk:
    image: sebp/elk:683
    restart: unless-stopped
    ports:
      - "5601:5601" # Elasticsearch
      - "9200:9200" # Kibana
    volumes:
      - es:/var/lib/elasticsearch

volumes:
  es: