docker-compose example for ceph, kafka, postgres cluster

That is how it can be done:

# BEFORE FIRST START
# sudo mkdir -p /private/var/lib/my-api/postgresql && sudo chmod 0777 /private/var/lib/my-api/postgresql
# $ createdb my_user -h localhost -p 6432 -U my_user
# $ psql -h localhost -p 6432 -U my_user < ./master.sql
# $ createdb my_user -h localhost -p 6433 -U my_user
# $ psql -h localhost -p 6433 -U my_user < ./shard_full.sql
#
# To clear db data just do this:
# rm -rf /private/var/lib/my-api/postgresql


version: '3.2'

services:
  dbmaster:
    image: postgres
    restart: always
    volumes:
      - type: bind
        source: /private/var/lib/my-api/postgresql/master
        target: /var/lib/postgresql
      - type: bind
        source: /private/var/lib/my-api/postgresql/master/data
        target: /var/lib/postgresql/data
    ports:
      - "6432:5432"
    environment:
      POSTGRES_USER: my_user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: my_user

  dbshard:
    image: postgres
    restart: always
    volumes:
      - type: bind
        source: /private/var/lib/my-api/postgresql/shard
        target: /var/lib/postgresql
      - type: bind
        source: /private/var/lib/my-api/postgresql/shard/data
        target: /var/lib/postgresql/data
    ports:
      - "6433:5432"
    environment:
      POSTGRES_USER: my_user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: platform_chat_api

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
      - "7203:7203"
    links:
      - zookeeper:zk
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zk:2181
      KAFKA_ADVERTISED_PORT: 9092

  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  ceph:
    image: qnib/ceph-mono
    ports:
      - "7480:7480"
      - "8500:8500"

LEAVE A COMMENT