-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
101 lines (92 loc) · 3 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
services:
app: &main
build: .
image: keboola/ex-mongodb
volumes:
- ssh-keys:/root/.ssh
- ./docker/certificates/ca-cert.pem:/tmp/ca-cert.pem:ro
- ./docker/certificates/client-cert.pem:/tmp/client-cert.pem:ro
- ./docker/certificates/client-cert-and-key.pem:/tmp/client-cert-and-key.pem:ro
- ./docker/certificates/client-key.pem:/tmp/client-key.pem:ro
links:
- mongodb
- mongodb-auth
- mongodb-ssl
- node1.mongodb.cluster.local
- sshproxy
- dns.local
environment:
- GODEBUG="x509ignoreCN=0"
- KBC_DATA_TYPE_SUPPORT=none
entrypoint:
- sh
- -c
- >
php -r "echo \"nameserver \" . gethostbyname(\"dns.local\") . \"\n\";" > /etc/resolv.conf.new
&& cp /etc/resolv.conf /etc/resolv.conf.bak
&& cp /etc/resolv.conf.new /etc/resolv.conf
&& exec "$$@"
- sh
dev:
<<: *main
volumes:
- ./:/code
- ./data:/data
- ssh-keys:/root/.ssh
- ./docker/certificates/ca-cert.pem:/tmp/ca-cert.pem:ro
- ./docker/certificates/client-cert.pem:/tmp/client-cert.pem:ro
- ./docker/certificates/client-cert-and-key.pem:/tmp/client-cert-and-key.pem:ro
- ./docker/certificates/client-key.pem:/tmp/client-key.pem:ro
# DNS server for testing mongodb+srv:// connection
# https://docs.mongodb.com/manual/reference/connection-string/#dns-seedlist-connection-format
dns.local:
image: jpillora/dnsmasq
entrypoint: >
dnsmasq
--conf-file=''
--resolv-file=/etc/resolv.conf
--no-daemon
--log-queries
--log-facility=-
--srv-host '_mongodb._tcp.mongodb.cluster.local,node1.mongodb.cluster.local,27017'
--txt-record 'mongodb.cluster.local'
mongodb: &mongodb
image: mongo:${MONGODB_VERSION}
mongodb-ssl:
<<: *mongodb
volumes:
- ./docker/mongodb/ssl-config.conf:/etc/ssl/ssl-config.conf
- ./docker/certificates/mongodb.pem:/etc/ssl/mongodb.pem:ro
- ./docker/certificates/ca.pem:/etc/ssl/ca.pem:ro
command: [ mongod, --config=/etc/ssl/ssl-config.conf ]
mongodb-auth:
<<: *mongodb
command: [--auth]
volumes:
- ./docker/mongodb/init-auth.js:/docker-entrypoint-initdb.d/init.js
node1.mongodb.cluster.local:
image: mongo:5
volumes:
- ./docker/mongodb/ssl-config-cluster.conf:/etc/ssl/ssl-config-cluster.conf
- ./docker/certificates/mongodb-cluster.pem:/etc/ssl/mongodb-cluster.pem:ro
- ./docker/certificates/ca.pem:/etc/ssl/ca.pem:ro
command: [mongod, --config=/etc/ssl/ssl-config-cluster.conf]
sshproxy:
image: keboola/db-component-ssh-proxy:latest
volumes:
- ssh-keys:/root/.ssh
links:
- mongodb
- mongodb-auth
wait:
image: waisbrot/wait
depends_on:
- mongodb
- mongodb-auth
- mongodb-ssl
- node1.mongodb.cluster.local
environment:
- TARGETS=mongodb:27017,mongodb-auth:27017,mongodb-ssl:27017,node1.mongodb.cluster.local:27017
- TIMEOUT=120
volumes:
ssh-keys: