# Docker Compose for single sidetree bitcoin node

version: '3.4'
services:
  sidetree-bitcore:
    image: sidetree-bitcore:latest
    build:
      context: .
      dockerfile: docker/sidetree-bitcore/Dockerfile
    ports:
      - 3001:3001
    volumes:
      - bitcoin-data:/app/sidetree-bitcore/data
    environment:
      BITCOIN_NETWORK: testnet

  sidetree-bitcoin:
    image: sidetree-bitcoin:latest
    build:
      context: .
      dockerfile: docker/sidetree-bitcoin/Dockerfile
    ports:
      - 3002:3002
    environment:
      MONGODB_CONNECTION_STRING: "mongodb://root:example@mongo:27017/"
    depends_on:
      - mongo


  sidetree-core:
    image: sidetree-core:latest
    build:
      context: .
      dockerfile: docker/sidetree-core/Dockerfile
    ports:
      - 3000:3000
    environment:
      MONGODB_CONNECTION_STRING: "mongodb://root:example@mongo:27017/"
      BLOCKCHAIN_SERVICE_URI: "http://sidetree-bitcoin:3002"
    depends_on:
      - mongo
      - sidetree-bitcoin

  mongo:
    image: mongo
    restart: always
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example

volumes:
  bitcoin-data:
