services: volumes-provisioner: image: hasnat/volumes-provisioner environment: PROVISION_DIRECTORIES: "1000:1000:0755:/tmp/certs" volumes: - "./certs:/tmp/certs" network_mode: none cert-gen: image: eventstore/es-gencert-cli:1.0.2 entrypoint: bash user: "1000:1000" command: > -c "mkdir -p ./certs && cd /certs && es-gencert-cli create-ca && es-gencert-cli create-node -out ./node1 -ip-addresses 127.0.0.1,172.30.240.11 -dns-names localhost && es-gencert-cli create-node -out ./node2 -ip-addresses 127.0.0.1,172.30.240.12 -dns-names localhost && es-gencert-cli create-node -out ./node3 -ip-addresses 127.0.0.1,172.30.240.13 -dns-names localhost && find . -type f -print0 | xargs -0 chmod 666" volumes: - "./certs:/certs" depends_on: - volumes-provisioner esdb-node1: build: context: . args: RUNTIME: ${RUNTIME} env_file: - shared.env environment: - KURRENTDB_GOSSIP_SEED=172.30.240.12:2113,172.30.240.13:2113 - KURRENTDB_REPLICATION_IP=172.30.240.11 - KURRENTDB_CERTIFICATE_FILE=/etc/kurrentdb/certs/node1/node.crt - KURRENTDB_CERTIFICATE_PRIVATE_KEY_FILE=/etc/kurrentdb/certs/node1/node.key - KURRENTDB_ADVERTISE_HOST_TO_CLIENT_AS=127.0.0.1 - KURRENTDB_ADVERTISE_NODE_PORT_TO_CLIENT_AS=2111 - KURRENTDB__LICENSING__LICENSE_KEY ports: - 2111:2113 networks: clusternetwork: ipv4_address: 172.30.240.11 volumes: - ./certs:/etc/kurrentdb/certs restart: unless-stopped depends_on: - cert-gen esdb-node2: build: context: . args: RUNTIME: ${RUNTIME} env_file: - shared.env environment: - KURRENTDB_GOSSIP_SEED=172.30.240.11:2113,172.30.240.13:2113 - KURRENTDB_REPLICATION_IP=172.30.240.12 - KURRENTDB_CERTIFICATE_FILE=/etc/kurrentdb/certs/node2/node.crt - KURRENTDB_CERTIFICATE_PRIVATE_KEY_FILE=/etc/kurrentdb/certs/node2/node.key - KURRENTDB_ADVERTISE_HOST_TO_CLIENT_AS=127.0.0.1 - KURRENTDB_ADVERTISE_NODE_PORT_TO_CLIENT_AS=2112 - KURRENTDB__LICENSING__LICENSE_KEY ports: - 2112:2113 networks: clusternetwork: ipv4_address: 172.30.240.12 volumes: - ./certs:/etc/kurrentdb/certs restart: unless-stopped depends_on: - cert-gen esdb-node3: build: context: . args: RUNTIME: ${RUNTIME} env_file: - shared.env environment: - KURRENTDB_GOSSIP_SEED=172.30.240.11:2113,172.30.240.12:2113 - KURRENTDB_REPLICATION_IP=172.30.240.13 - KURRENTDB_CERTIFICATE_FILE=/etc/kurrentdb/certs/node3/node.crt - KURRENTDB_CERTIFICATE_PRIVATE_KEY_FILE=/etc/kurrentdb/certs/node3/node.key - KURRENTDB_ADVERTISE_HOST_TO_CLIENT_AS=127.0.0.1 - KURRENTDB_ADVERTISE_NODE_PORT_TO_CLIENT_AS=2113 - KURRENTDB__LICENSING__LICENSE_KEY ports: - 2113:2113 networks: clusternetwork: ipv4_address: 172.30.240.13 volumes: - ./certs:/etc/kurrentdb/certs restart: unless-stopped depends_on: - cert-gen networks: clusternetwork: name: kurrentdb.local driver: bridge ipam: driver: default config: - subnet: 172.30.240.0/24