##// END OF EJS Templates
compose: expose host network to access for external DB
super-admin -
Show More
@@ -1,305 +1,317 b''
1 version: '3.9'
1 version: '3.9'
2
2
3 x-logging: &custom-logging
3 x-logging: &custom-logging
4 # docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
4 # docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
5 # NOTE: loki logging driver ONLY works for host type networks...
5 # NOTE: loki logging driver ONLY works for host type networks...
6 driver: loki
6 driver: loki
7 options:
7 options:
8 loki-url: "http://127.0.0.1:3100/loki/api/v1/push"
8 loki-url: "http://127.0.0.1:3100/loki/api/v1/push"
9 #loki-url: "http://loki:3100/loki/api/v1/push"
9 #loki-url: "http://loki:3100/loki/api/v1/push"
10 loki-retries: "5"
10 loki-retries: "5"
11 loki-timeout: "1s"
11 loki-timeout: "1s"
12 loki-max-backoff: "800ms"
12 loki-max-backoff: "800ms"
13
13
14
14
15 services:
15 services:
16
16
17 rhodecode:
17 rhodecode:
18 networks:
18 networks:
19 - rhodecode_network
19 - rhodecode_network
20 extra_hosts:
21 - "host.docker.internal:host-gateway"
20 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
22 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
21 stdin_open: true
23 stdin_open: true
22 tty: true
24 tty: true
23 restart: always
25 restart: always
24 command: [
26 command: [
25 "/usr/local/bin/rhodecode_bin/bin/gunicorn",
27 "/usr/local/bin/rhodecode_bin/bin/gunicorn",
26 "--name=gunicorn-rhodecode-1",
28 "--name=gunicorn-rhodecode-1",
27 "--error-logfile=-",
29 "--error-logfile=-",
28 "--paster=/etc/rhodecode/conf/rhodecode.optimized.ini",
30 "--paster=/etc/rhodecode/conf/rhodecode.optimized.ini",
29 "--config=/etc/rhodecode/conf/gunicorn_conf_rc.py"
31 "--config=/etc/rhodecode/conf/gunicorn_conf_rc.py"
30 ]
32 ]
31 deploy:
33 deploy:
32 # override this in .custom/docker-compose-apps.override.yaml to scale up
34 # override this in .custom/docker-compose-apps.override.yaml to scale up
33 replicas: 1
35 replicas: 1
34
36
35 # ports:
37 # ports:
36 # - "127.0.0.1::10020"
38 # - "127.0.0.1::10020"
37
39
38 build:
40 build:
39 context: .
41 context: .
40 dockerfile: service/rhodecode/rhodecode.dockerfile
42 dockerfile: service/rhodecode/rhodecode.dockerfile
41 args:
43 args:
42 TZ: ${TZ}
44 TZ: ${TZ}
43 RHODECODE_VERSION: ${RC_VERSION:-4.28.0}
45 RHODECODE_VERSION: ${RC_VERSION:-4.28.0}
44 RHODECODE_DB: postgresql://rhodecode:${DB_PASSWORD:?must-specify-db-password}@database/${DB_NAME:?must-specify-db-name}
46 RHODECODE_DB: postgresql://rhodecode:${DB_PASSWORD:?must-specify-db-password}@database/${DB_NAME:?must-specify-db-name}
45 RHODECODE_USER_NAME: ${RHODECODE_USER_NAME}
47 RHODECODE_USER_NAME: ${RHODECODE_USER_NAME}
46 RHODECODE_USER_PASS: ${RHODECODE_USER_PASS}
48 RHODECODE_USER_PASS: ${RHODECODE_USER_PASS}
47 RHODECODE_USER_EMAIL: ${RHODECODE_USER_EMAIL}
49 RHODECODE_USER_EMAIL: ${RHODECODE_USER_EMAIL}
48
50
49 environment:
51 environment:
50 RC_APP_TYPE: rhodecode_http
52 RC_APP_TYPE: rhodecode_http
51 RC_APP_PROC: 1
53 RC_APP_PROC: 1
52 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
54 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
53 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
55 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
54 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
56 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
55 GEVENT_RESOLVER: "ares"
57 GEVENT_RESOLVER: "ares"
56
58
57 DB_UPGRADE: 1 # run the DB upgrade
59 DB_UPGRADE: 1 # run the DB upgrade
58 SETUP_APP: 1 # run the application default settings setup, can be turned off after initial run
60 SETUP_APP: 1 # run the application default settings setup, can be turned off after initial run
59 #FORCE_DB_INIT_FILE: 1 # force the database init, warning: destroys old DB
61 #FORCE_DB_INIT_FILE: 1 # force the database init, warning: destroys old DB
60 #FORCE_RC_SETUP_APP: 1 # force running setup scripts for configuration/license application
62 #FORCE_RC_SETUP_APP: 1 # force running setup scripts for configuration/license application
61 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.optimized.ini
63 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.optimized.ini
62
64
63 # SVN Specific
65 # SVN Specific
64 MOD_DAV_SVN_PORT: 8090
66 MOD_DAV_SVN_PORT: 8090
65 APACHE_LOG_DIR: /var/log/rhodecode/svn
67 APACHE_LOG_DIR: /var/log/rhodecode/svn
66 MOD_DAV_SVN_CONF_FILE: /etc/rhodecode/conf/svn/mod_dav_svn.conf
68 MOD_DAV_SVN_CONF_FILE: /etc/rhodecode/conf/svn/mod_dav_svn.conf
67
69
68 healthcheck:
70 healthcheck:
69 test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:10020/_admin/ops/ping" ]
71 test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:10020/_admin/ops/ping" ]
70 timeout: 30s
72 timeout: 30s
71 interval: 60s
73 interval: 60s
72 retries: 10
74 retries: 10
73
75
74 # depends_on:
76 # depends_on:
75 # - database
77 # - database
76 # - redis
78 # - redis
77 # - channelstream
79 # - channelstream
78
80
79 volumes:
81 volumes:
80 - confvolume:/etc/rhodecode/conf
82 - confvolume:/etc/rhodecode/conf
81 - logvolume:/var/log/rhodecode
83 - logvolume:/var/log/rhodecode
82 - rc_reposvolume:/var/opt/rhodecode_repo_store
84 - rc_reposvolume:/var/opt/rhodecode_repo_store
83 - rc_datavolume:/var/opt/rhodecode_data
85 - rc_datavolume:/var/opt/rhodecode_data
84
86
85 tmpfs:
87 tmpfs:
86 - /data_ramdisk:size=${RC_DATA_RAMDISK_SIZE:?specify-RC_DATA_RAMDISK_SIZE-env-var}
88 - /data_ramdisk:size=${RC_DATA_RAMDISK_SIZE:?specify-RC_DATA_RAMDISK_SIZE-env-var}
87
89
88 logging:
90 logging:
89 *custom-logging
91 *custom-logging
90
92
91 labels:
93 labels:
92 - "traefik.enable=true"
94 - "traefik.enable=true"
93 - "traefik.http.routers.rhodecode.entrypoints=http"
95 - "traefik.http.routers.rhodecode.entrypoints=http"
94 - "traefik.http.routers.rhodecode.rule=Host(`${RHODECODE_HOSTNAME:?must-specify-rhodecode-hostname}`)"
96 - "traefik.http.routers.rhodecode.rule=Host(`${RHODECODE_HOSTNAME:?must-specify-rhodecode-hostname}`)"
95 - "traefik.http.services.rhodecode.loadbalancer.server.port=10020"
97 - "traefik.http.services.rhodecode.loadbalancer.server.port=10020"
96
98
97 vcsserver:
99 vcsserver:
98 networks:
100 networks:
99 - rhodecode_network
101 - rhodecode_network
102 extra_hosts:
103 - "host.docker.internal:host-gateway"
100 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
104 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
101
105
102 stdin_open: true
106 stdin_open: true
103 tty: true
107 tty: true
104 restart: always
108 restart: always
105 command: [
109 command: [
106 "/home/rhodecode/.rccontrol/vcsserver-1/profile/bin/gunicorn",
110 "/home/rhodecode/.rccontrol/vcsserver-1/profile/bin/gunicorn",
107 "--name=gunicorn-vcsserver-1",
111 "--name=gunicorn-vcsserver-1",
108 "--error-logfile=-",
112 "--error-logfile=-",
109 "--paster=/etc/rhodecode/conf/vcsserver.optimized.ini",
113 "--paster=/etc/rhodecode/conf/vcsserver.optimized.ini",
110 "--config=/etc/rhodecode/conf/gunicorn_conf_vcs.py"
114 "--config=/etc/rhodecode/conf/gunicorn_conf_vcs.py"
111 ]
115 ]
112 deploy:
116 deploy:
113 # override this in .custom/docker-compose-apps.override.yaml to scale up
117 # override this in .custom/docker-compose-apps.override.yaml to scale up
114 replicas: 1
118 replicas: 1
115
119
116 # ports:
120 # ports:
117 # - "127.0.0.1::10010"
121 # - "127.0.0.1::10010"
118
122
119 healthcheck:
123 healthcheck:
120 test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:10010/status" ]
124 test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:10010/status" ]
121 timeout: 30s
125 timeout: 30s
122 interval: 60s
126 interval: 60s
123 retries: 10
127 retries: 10
124
128
125 environment:
129 environment:
126 RC_APP_TYPE: rhodecode_vcsserver
130 RC_APP_TYPE: rhodecode_vcsserver
127 RC_APP_PROC: 1
131 RC_APP_PROC: 1
128 MAIN_INI_PATH: /etc/rhodecode/conf/vcsserver.optimized.ini
132 MAIN_INI_PATH: /etc/rhodecode/conf/vcsserver.optimized.ini
129 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
133 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
130 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
134 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
131 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
135 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
132
136
133 # depends_on:
137 # depends_on:
134 # - redis
138 # - redis
135
139
136 volumes:
140 volumes:
137 - confvolume:/etc/rhodecode/conf
141 - confvolume:/etc/rhodecode/conf
138 - logvolume:/var/log/rhodecode
142 - logvolume:/var/log/rhodecode
139 - rc_reposvolume:/var/opt/rhodecode_repo_store
143 - rc_reposvolume:/var/opt/rhodecode_repo_store
140 - rc_datavolume:/var/opt/rhodecode_data
144 - rc_datavolume:/var/opt/rhodecode_data
141
145
142 logging:
146 logging:
143 *custom-logging
147 *custom-logging
144
148
145 celery:
149 celery:
146 networks:
150 networks:
147 - rhodecode_network
151 - rhodecode_network
152 extra_hosts:
153 - "host.docker.internal:host-gateway"
148 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
154 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
149
155
150 stdin_open: true
156 stdin_open: true
151 tty: true
157 tty: true
152 restart: always
158 restart: always
153 command: [
159 command: [
154 "/usr/local/bin/rhodecode_bin/bin/celery",
160 "/usr/local/bin/rhodecode_bin/bin/celery",
155 "worker",
161 "worker",
156 "--task-events",
162 "--task-events",
157 "--autoscale=10,2",
163 "--autoscale=10,2",
158 "--no-color",
164 "--no-color",
159 "--app=rhodecode.lib.celerylib.loader",
165 "--app=rhodecode.lib.celerylib.loader",
160 "--loglevel=DEBUG",
166 "--loglevel=DEBUG",
161 "--ini=/etc/rhodecode/conf/rhodecode.optimized.ini"
167 "--ini=/etc/rhodecode/conf/rhodecode.optimized.ini"
162 ]
168 ]
163
169
164 environment:
170 environment:
165 RC_APP_TYPE: rhodecode_celery
171 RC_APP_TYPE: rhodecode_celery
166 RC_APP_PROC: 1
172 RC_APP_PROC: 1
167 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.optimized.ini
173 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.optimized.ini
168 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
174 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
169 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
175 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
170 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
176 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
171
177
172 # depends_on:
178 # depends_on:
173 # - database
179 # - database
174 # - redis
180 # - redis
175
181
176 volumes:
182 volumes:
177 - confvolume:/etc/rhodecode/conf
183 - confvolume:/etc/rhodecode/conf
178 - logvolume:/var/log/rhodecode
184 - logvolume:/var/log/rhodecode
179 - rc_reposvolume:/var/opt/rhodecode_repo_store
185 - rc_reposvolume:/var/opt/rhodecode_repo_store
180 - rc_datavolume:/var/opt/rhodecode_data
186 - rc_datavolume:/var/opt/rhodecode_data
181
187
182 logging:
188 logging:
183 *custom-logging
189 *custom-logging
184
190
185 labels:
191 labels:
186 - "traefik.enable=false"
192 - "traefik.enable=false"
187
193
188 celery-beat:
194 celery-beat:
189 # This service is not scalable
195 # This service is not scalable
190 networks:
196 networks:
191 - rhodecode_network
197 - rhodecode_network
198 extra_hosts:
199 - "host.docker.internal:host-gateway"
192 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
200 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
193
201
194 stdin_open: true
202 stdin_open: true
195 tty: true
203 tty: true
196 restart: always
204 restart: always
197 command: [
205 command: [
198 "/usr/local/bin/rhodecode_bin/bin/celery",
206 "/usr/local/bin/rhodecode_bin/bin/celery",
199 "beat",
207 "beat",
200 "--no-color",
208 "--no-color",
201 "--app=rhodecode.lib.celerylib.loader",
209 "--app=rhodecode.lib.celerylib.loader",
202 "--scheduler=rhodecode.lib.celerylib.scheduler.RcScheduler",
210 "--scheduler=rhodecode.lib.celerylib.scheduler.RcScheduler",
203 "--loglevel=DEBUG",
211 "--loglevel=DEBUG",
204 "--ini=/etc/rhodecode/conf/rhodecode.optimized.ini"
212 "--ini=/etc/rhodecode/conf/rhodecode.optimized.ini"
205 ]
213 ]
206
214
207 environment:
215 environment:
208 RC_APP_TYPE: rhodecode_beat
216 RC_APP_TYPE: rhodecode_beat
209 RC_APP_PROC: 1
217 RC_APP_PROC: 1
210 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.optimized.ini
218 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.optimized.ini
211 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
219 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
212 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
220 REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
213 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
221 GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
214
222
215 # depends_on:
223 # depends_on:
216 # - database
224 # - database
217 # - redis
225 # - redis
218
226
219 volumes:
227 volumes:
220 - confvolume:/etc/rhodecode/conf
228 - confvolume:/etc/rhodecode/conf
221 - logvolume:/var/log/rhodecode
229 - logvolume:/var/log/rhodecode
222 - rc_reposvolume:/var/opt/rhodecode_repo_store
230 - rc_reposvolume:/var/opt/rhodecode_repo_store
223 - rc_datavolume:/var/opt/rhodecode_data
231 - rc_datavolume:/var/opt/rhodecode_data
224
232
225 logging:
233 logging:
226 *custom-logging
234 *custom-logging
227
235
228 labels:
236 labels:
229 - "traefik.enable=false"
237 - "traefik.enable=false"
230
238
231 svn:
239 svn:
232 networks:
240 networks:
233 - rhodecode_network
241 - rhodecode_network
242 extra_hosts:
243 - "host.docker.internal:host-gateway"
234 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
244 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
235
245
236 # build:
246 # build:
237 # context: .
247 # context: .
238 # dockerfile: service/svn/rhodecode_svn.dockerfile
248 # dockerfile: service/svn/rhodecode_svn.dockerfile
239 # args:
249 # args:
240 # APACHE_VER: 1.3
250 # APACHE_VER: 1.3
241
251
242 stdin_open: true
252 stdin_open: true
243 tty: true
253 tty: true
244 restart: always
254 restart: always
245 command: ["apachectl", "-D", "FOREGROUND"]
255 command: ["apachectl", "-D", "FOREGROUND"]
246
256
247 environment:
257 environment:
248 RC_APP_TYPE: rhodecode_svn
258 RC_APP_TYPE: rhodecode_svn
249
259
250 # SVN Specific
260 # SVN Specific
251 MOD_DAV_SVN_PORT: 8090
261 MOD_DAV_SVN_PORT: 8090
252 APACHE_LOG_DIR: /var/log/rhodecode/svn
262 APACHE_LOG_DIR: /var/log/rhodecode/svn
253 MOD_DAV_SVN_CONF_FILE: /etc/rhodecode/conf/svn/mod_dav_svn.conf
263 MOD_DAV_SVN_CONF_FILE: /etc/rhodecode/conf/svn/mod_dav_svn.conf
254
264
255 # ports:
265 # ports:
256 # - "127.0.0.1::8090"
266 # - "127.0.0.1::8090"
257
267
258 healthcheck:
268 healthcheck:
259 test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:8090/_server_status" ]
269 test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:8090/_server_status" ]
260 timeout: 30s
270 timeout: 30s
261 interval: 60s
271 interval: 60s
262 retries: 10
272 retries: 10
263
273
264 volumes:
274 volumes:
265 - confvolume:/etc/rhodecode/conf
275 - confvolume:/etc/rhodecode/conf
266 - logvolume:/var/log/rhodecode
276 - logvolume:/var/log/rhodecode
267 - rc_reposvolume:/var/opt/rhodecode_repo_store
277 - rc_reposvolume:/var/opt/rhodecode_repo_store
268
278
269 logging:
279 logging:
270 *custom-logging
280 *custom-logging
271
281
272 sshd:
282 sshd:
273 networks:
283 networks:
274 - rhodecode_network
284 - rhodecode_network
285 extra_hosts:
286 - "host.docker.internal:host-gateway"
275 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
287 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
276
288
277 stdin_open: true
289 stdin_open: true
278 tty: true
290 tty: true
279 restart: always
291 restart: always
280 command: ["/usr/sbin/sshd", "-f", "/etc/rhodecode/sshd_config", "-D", "-e"]
292 command: ["/usr/sbin/sshd", "-f", "/etc/rhodecode/sshd_config", "-D", "-e"]
281
293
282 environment:
294 environment:
283 RC_APP_TYPE: rhodecode_sshd
295 RC_APP_TYPE: rhodecode_sshd
284 SSH_BOOTSTRAP: 1
296 SSH_BOOTSTRAP: 1
285
297
286 # ports:
298 # ports:
287 # # set from .env file
299 # # set from .env file
288 # - "${RC_SSH_PORT:?must-specify-ssh-port}:22"
300 # - "${RC_SSH_PORT:?must-specify-ssh-port}:22"
289
301
290 volumes:
302 volumes:
291 - confvolume:/etc/rhodecode/conf
303 - confvolume:/etc/rhodecode/conf
292 - logvolume:/var/log/rhodecode
304 - logvolume:/var/log/rhodecode
293 - rc_reposvolume:/var/opt/rhodecode_repo_store
305 - rc_reposvolume:/var/opt/rhodecode_repo_store
294 - rc_datavolume:/var/opt/rhodecode_data
306 - rc_datavolume:/var/opt/rhodecode_data
295
307
296 logging:
308 logging:
297 *custom-logging
309 *custom-logging
298
310
299 labels:
311 labels:
300 - "traefik.enable=true"
312 - "traefik.enable=true"
301 - "traefik.http.routers.sshd.entrypoints=ssh"
313 - "traefik.http.routers.sshd.entrypoints=ssh"
302 - "traefik.http.routers.sshd.rule=Host(`*`)"
314 - "traefik.http.routers.sshd.rule=Host(`*`)"
303 - "traefik.http.services.sshd.loadbalancer.server.port=${RC_SSH_PORT:?must-specify-ssh-port}"
315 - "traefik.http.services.sshd.loadbalancer.server.port=${RC_SSH_PORT:?must-specify-ssh-port}"
304
316
305
317
General Comments 0
You need to be logged in to leave comments. Login now