services: app: cpus: 2 build: . environment: SIM_ADDR: 0.0.0.0:7878 SIM_CONFIG: /etc/sim/config.rn SIM_SHARDS: "3" SIM_SHARD_ADDRS: shard-0:9000,shard-1:9000,shard-2:9000 SIM_CLUSTER_TOKEN: ${SIM_CLUSTER_TOKEN:-compose-dev-token} SIM_TRUST_PROXY_HEADERS: "1" volumes: - ./config.rn:/etc/sim/config.rn:ro ports: - "127.0.0.1:7878:7878" depends_on: shard-0: condition: service_started shard-1: condition: service_started shard-2: condition: service_started restart: unless-stopped shard-0: build: . command: ["shard", "--index", "0", "--count", "3", "--seed", "42", "--listen", "0.0.0.0:9000"] environment: SIM_CONFIG: /etc/sim/config.rn SIM_CLUSTER_TOKEN: ${SIM_CLUSTER_TOKEN:-compose-dev-token} SIM_REMOTING_BIND: 0.0.0.0:9001 SIM_REMOTING_ADVERTISE: ws://shard-0:9001/remoting SHARD_DATABASE_URL: sqlite:///data/shard-0.db?mode=rwc volumes: - ./config.rn:/etc/sim/config.rn:ro - shard_0_data:/data restart: unless-stopped shard-1: build: . command: ["shard", "--index", "1", "--count", "3", "--seed", "42", "--listen", "0.0.0.0:9000"] environment: SIM_CONFIG: /etc/sim/config.rn SIM_CLUSTER_TOKEN: ${SIM_CLUSTER_TOKEN:-compose-dev-token} SIM_REMOTING_BIND: 0.0.0.0:9001 SIM_REMOTING_ADVERTISE: ws://shard-1:9001/remoting SHARD_DATABASE_URL: sqlite:///data/shard-1.db?mode=rwc volumes: - ./config.rn:/etc/sim/config.rn:ro - shard_1_data:/data restart: unless-stopped shard-2: build: . command: ["shard", "--index", "2", "--count", "3", "--seed", "42", "--listen", "0.0.0.0:9000"] environment: SIM_CONFIG: /etc/sim/config.rn SIM_CLUSTER_TOKEN: ${SIM_CLUSTER_TOKEN:-compose-dev-token} SIM_REMOTING_BIND: 0.0.0.0:9001 SIM_REMOTING_ADVERTISE: ws://shard-2:9001/remoting SHARD_DATABASE_URL: sqlite:///data/shard-2.db?mode=rwc volumes: - ./config.rn:/etc/sim/config.rn:ro - shard_2_data:/data restart: unless-stopped volumes: shard_0_data: shard_1_data: shard_2_data: