Skip to content

Instantly share code, notes, and snippets.

@simonkuang
Created July 27, 2021 08:54
Show Gist options
  • Select an option

  • Save simonkuang/f2e1000b05d7dcc0e80a414db110c3e5 to your computer and use it in GitHub Desktop.

Select an option

Save simonkuang/f2e1000b05d7dcc0e80a414db110c3e5 to your computer and use it in GitHub Desktop.

Revisions

  1. simonkuang created this gist Jul 27, 2021.
    145 changes: 145 additions & 0 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,145 @@
    version: '2'
    services:

    ## Router
    router01:
    image: mongo:4.2
    container_name: rydell-router-01
    command: mongos --port 27017 --configdb rs-config-server/configsvr01:27017,configsvr02:27017,configsvr03:27017 --bind_ip_all
    ports:
    - 27117:27017
    volumes:
    - ./scripts:/scripts
    router02:
    image: mongo:4.2
    container_name: rydell-router-02
    command: mongos --port 27017 --configdb rs-config-server/configsvr01:27017,configsvr02:27017,configsvr03:27017 --bind_ip_all
    volumes:
    - ./scripts:/scripts
    ports:
    - 27118:27017
    links:
    - router01

    ## Config Servers
    configsvr01:
    image: mongo:4.2
    container_name: rydell-mongo-config-01
    command: mongod --port 27017 --configsvr --replSet rs-config-server
    volumes:
    - ./scripts:/scripts
    ports:
    - 27119:27017
    links:
    - shard01-a
    - shard02-a
    - shard03-a
    configsvr02:
    image: mongo:4.2
    container_name: rydell-mongo-config-02
    command: mongod --port 27017 --configsvr --replSet rs-config-server
    volumes:
    - ./scripts:/scripts
    ports:
    - 27120:27017
    links:
    - configsvr01
    configsvr03:
    image: mongo:4.2
    container_name: rydell-mongo-config-03
    command: mongod --port 27017 --configsvr --replSet rs-config-server
    volumes:
    - ./scripts:/scripts
    ports:
    - 27121:27017
    links:
    - configsvr02

    ## Shards
    ## Shards 01

    shard01-a:
    image: mongo:4.2
    container_name: rydell-shard-01-node-a
    command: mongod --port 27017 --shardsvr --replSet rs-shard-01
    volumes:
    - ./scripts:/scripts
    ports:
    - 27122:27017
    links:
    - shard01-b
    - shard01-c
    shard01-b:
    image: mongo:4.2
    container_name: rydell-shard-01-node-b
    command: mongod --port 27017 --shardsvr --replSet rs-shard-01
    volumes:
    - ./scripts:/scripts
    ports:
    - 27123:27017
    shard01-c:
    image: mongo:4.2
    container_name: rydell-shard-01-node-c
    command: mongod --port 27017 --shardsvr --replSet rs-shard-01
    volumes:
    - ./scripts:/scripts
    ports:
    - 27124:27017

    ## Shards 02
    shard02-a:
    image: mongo:4.2
    container_name: rydell-shard-02-node-a
    command: mongod --port 27017 --shardsvr --replSet rs-shard-02
    volumes:
    - ./scripts:/scripts
    ports:
    - 27125:27017
    links:
    - shard02-b
    - shard02-c
    shard02-b:
    image: mongo:4.2
    container_name: rydell-shard-02-node-b
    command: mongod --port 27017 --shardsvr --replSet rs-shard-02
    volumes:
    - ./scripts:/scripts
    ports:
    - 27126:27017
    shard02-c:
    image: mongo:4.2
    container_name: rydell-shard-02-node-c
    command: mongod --port 27017 --shardsvr --replSet rs-shard-02
    volumes:
    - ./scripts:/scripts
    ports:
    - 27127:27017

    ## Shards 03
    shard03-a:
    image: mongo:4.2
    container_name: rydell-shard-03-node-a
    command: mongod --port 27017 --shardsvr --replSet rs-shard-03
    volumes:
    - ./scripts:/scripts
    ports:
    - 27128:27017
    links:
    - shard03-b
    - shard03-c
    shard03-b:
    image: mongo:4.2
    container_name: rydell-shard-03-node-b
    command: mongod --port 27017 --shardsvr --replSet rs-shard-03
    volumes:
    - ./scripts:/scripts
    ports:
    - 27129:27017
    shard03-c:
    image: mongo:4.2
    container_name: rydell-shard-03-node-c
    command: mongod --port 27017 --shardsvr --replSet rs-shard-03
    volumes:
    - ./scripts:/scripts
    ports:
    - 27130:27017