1
- version : ' 3.5'
1
+ version : " 3.5"
2
2
3
3
services :
4
4
volumes-provisioner :
5
- image : " hasnat/volumes-provisioner"
5
+ image : hasnat/volumes-provisioner
6
6
environment :
7
7
PROVISION_DIRECTORIES : " 1000:1000:0755:/tmp/certs"
8
8
volumes :
9
9
- " ./certs:/tmp/certs"
10
- network_mode : " none"
10
+ network_mode : none
11
11
12
- setup :
12
+ cert-gen :
13
13
image : eventstore/es-gencert-cli:1.0.2
14
14
entrypoint : bash
15
15
user : " 1000:1000"
16
16
command : >
17
17
-c "mkdir -p ./certs && cd /certs
18
18
&& es-gencert-cli create-ca
19
- && es-gencert-cli create-node -out ./node1 -- dns-names node1.eventstore
20
- && es-gencert-cli create-node -out ./node2 -- dns-names node2.eventstore
21
- && es-gencert-cli create-node -out ./node3 -- dns-names node3.eventstore
19
+ && es-gencert-cli create-node -out ./node1 -ip-addresses 127.0.0.1,172.30.240.11 - dns-names localhost
20
+ && es-gencert-cli create-node -out ./node2 -ip-addresses 127.0.0.1,172.30.240.12 - dns-names localhost
21
+ && es-gencert-cli create-node -out ./node3 -ip-addresses 127.0.0.1,172.30.240.13 - dns-names localhost
22
22
&& find . -type f -print0 | xargs -0 chmod 666"
23
- container_name : setup
24
23
volumes :
25
- - ./certs:/certs
24
+ - " ./certs:/certs"
26
25
depends_on :
27
26
- volumes-provisioner
28
27
29
- node1.eventstore : &template
28
+ esdb- node1:
30
29
image : ghcr.io/eventstore/eventstore:${CONTAINER_IMAGE_VERSION:-latest}
31
- container_name : node1.eventstore
32
30
env_file :
33
31
- vars.env
34
32
environment :
35
- - EVENTSTORE_EXT_HOST_ADVERTISE_AS=node1.eventstore
36
- - EVENTSTORE_INT_HOST_ADVERTISE_AS=node1.eventstore
37
- - EVENTSTORE_GOSSIP_SEED=node2.eventstore:2113,node3.eventstore:2113
38
- - EVENTSTORE_CERTIFICATE_FILE=/certs/node1/node.crt
39
- - EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/certs/node1/node.key
33
+ - EVENTSTORE_GOSSIP_SEED=172.30.240.12:2113,172.30.240.13:2113
34
+ - EVENTSTORE_INT_IP=172.30.240.11
35
+ - EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node1/node.crt
36
+ - EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node1/node.key
40
37
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2111
41
- - EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1111
42
- healthcheck :
43
- test :
44
- [
45
- ' CMD-SHELL' ,
46
- ' curl --fail --insecure https://node1.eventstore:2113/health/live || exit 1' ,
47
- ]
48
- interval : 5s
49
- timeout : 5s
50
- retries : 24
51
38
ports :
52
- - 1111:1113
53
39
- 2111:2113
40
+ networks :
41
+ clusternetwork :
42
+ ipv4_address : 172.30.240.11
54
43
volumes :
55
- - ./certs:/certs
44
+ - ./certs:/etc/eventstore/certs
45
+ restart : unless-stopped
56
46
depends_on :
57
- - setup
58
- restart : always
47
+ - cert-gen
59
48
60
- node2.eventstore :
61
- << : *template
62
- container_name : node2.eventstore
49
+ esdb-node2 :
50
+ image : ghcr.io/eventstore/eventstore:${CONTAINER_IMAGE_VERSION:-latest}
51
+ env_file :
52
+ - vars.env
63
53
environment :
64
- - EVENTSTORE_EXT_HOST_ADVERTISE_AS=node2.eventstore
65
- - EVENTSTORE_INT_HOST_ADVERTISE_AS=node2.eventstore
66
- - EVENTSTORE_GOSSIP_SEED=node1.eventstore:2113,node3.eventstore:2113
67
- - EVENTSTORE_CERTIFICATE_FILE=/certs/node2/node.crt
68
- - EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/certs/node2/node.key
54
+ - EVENTSTORE_GOSSIP_SEED=172.30.240.11:2113,172.30.240.13:2113
55
+ - EVENTSTORE_INT_IP=172.30.240.12
56
+ - EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node2/node.crt
57
+ - EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node2/node.key
69
58
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2112
70
- - EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1112
71
- healthcheck :
72
- test :
73
- [
74
- ' CMD-SHELL' ,
75
- ' curl --fail --insecure https://node2.eventstore:2113/health/live || exit 1' ,
76
- ]
77
- interval : 5s
78
- timeout : 5s
79
- retries : 24
80
59
ports :
81
- - 1112:1113
82
60
- 2112:2113
61
+ networks :
62
+ clusternetwork :
63
+ ipv4_address : 172.30.240.12
64
+ volumes :
65
+ - ./certs:/etc/eventstore/certs
66
+ restart : unless-stopped
67
+ depends_on :
68
+ - cert-gen
83
69
84
- node3.eventstore :
85
- << : *template
86
- container_name : node3.eventstore
70
+ esdb-node3 :
71
+ image : ghcr.io/eventstore/eventstore:${CONTAINER_IMAGE_VERSION:-latest}
72
+ env_file :
73
+ - vars.env
87
74
environment :
88
- - EVENTSTORE_EXT_HOST_ADVERTISE_AS=node3.eventstore
89
- - EVENTSTORE_INT_HOST_ADVERTISE_AS=node3.eventstore
90
- - EVENTSTORE_GOSSIP_SEED=node1.eventstore:2113,node2.eventstore:2113
91
- - EVENTSTORE_CERTIFICATE_FILE=/certs/node3/node.crt
92
- - EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/certs/node3/node.key
75
+ - EVENTSTORE_GOSSIP_SEED=172.30.240.11:2113,172.30.240.12:2113
76
+ - EVENTSTORE_INT_IP=172.30.240.13
77
+ - EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node3/node.crt
78
+ - EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node3/node.key
93
79
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113
94
- - EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113
95
- healthcheck :
96
- test :
97
- [
98
- ' CMD-SHELL' ,
99
- ' curl --fail --insecure https://node3.eventstore:2113/health/live || exit 1' ,
100
- ]
101
- interval : 5s
102
- timeout : 5s
103
- retries : 24
104
80
ports :
105
- - 1113:1113
106
81
- 2113:2113
82
+ networks :
83
+ clusternetwork :
84
+ ipv4_address : 172.30.240.13
85
+ volumes :
86
+ - ./certs:/etc/eventstore/certs
87
+ restart : unless-stopped
88
+ depends_on :
89
+ - cert-gen
90
+
91
+ networks :
92
+ clusternetwork :
93
+ name : eventstoredb.local
94
+ driver : bridge
95
+ ipam :
96
+ driver : default
97
+ config :
98
+ - subnet : 172.30.240.0/24
0 commit comments