Show More
@@ -1,248 +1,248 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:2.7.1 --alias loki --grant-all-permissions |
|
4 | # docker plugin install grafana/loki-docker-driver:2.7.1 --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://loki:3100/loki/api/v1/push" |
|
8 | #loki-url: "http://loki:3100/loki/api/v1/push" | |
9 | loki-url: "http://127.0.0.1:3100/loki/api/v1/push" |
|
9 | loki-url: "http://127.0.0.1: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 | volumes: |
|
14 | volumes: | |
15 |
|
15 | |||
16 | # volume for redis data store |
|
16 | # volume for redis data store | |
17 | redis_data: |
|
17 | redis_data: | |
18 | labels: |
|
18 | labels: | |
19 | "keep": 1 |
|
19 | "keep": 1 | |
20 |
|
20 | |||
21 | # volume for Postgres db store |
|
21 | # volume for Postgres db store | |
22 |
|
22 | |||
23 | # volume for Postgres Data |
|
23 | # volume for Postgres Data | |
24 | pg_data: |
|
24 | pg_data: | |
25 | labels: |
|
25 | labels: | |
26 | "keep": 1 |
|
26 | "keep": 1 | |
27 |
|
27 | |||
28 | # volume for rhodecode elasticsearch |
|
28 | # volume for rhodecode elasticsearch | |
29 | es_data: |
|
29 | es_data: | |
30 | labels: |
|
30 | labels: | |
31 | "keep": 1 |
|
31 | "keep": 1 | |
32 |
|
32 | |||
33 |
|
33 | |||
34 | services: |
|
34 | services: | |
35 |
|
35 | |||
36 | channelstream: |
|
36 | channelstream: | |
37 | networks: |
|
37 | networks: | |
38 | - rhodecode_network |
|
38 | - rhodecode_network | |
39 | image: channelstream/channelstream:0.7.1 |
|
39 | image: channelstream/channelstream:0.7.1 | |
40 |
|
40 | |||
41 | restart: always |
|
41 | restart: always | |
42 |
|
42 | |||
43 | # ports: |
|
43 | # ports: | |
44 | # - "127.0.0.1:9800:9800" |
|
44 | # - "127.0.0.1:9800:9800" | |
45 | env_file: |
|
45 | env_file: | |
46 | - ${RC_ENV_FILE:?must-specify-rc-env-file} |
|
46 | - ${RC_ENV_FILE:?must-specify-rc-env-file} | |
47 | command: ["channelstream"] |
|
47 | command: ["channelstream"] | |
48 |
|
48 | |||
49 | healthcheck: |
|
49 | healthcheck: | |
50 | test: [ "CMD", "curl", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://channelstream:8000/admin/sign_in" ] |
|
50 | test: [ "CMD", "curl", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://channelstream:8000/admin/sign_in" ] | |
51 | timeout: 5s |
|
51 | timeout: 5s | |
52 | interval: 60s |
|
52 | interval: 60s | |
53 | retries: 10 |
|
53 | retries: 10 | |
54 |
|
54 | |||
55 | volumes: |
|
55 | volumes: | |
56 | - confvolume:/etc/rhodecode/conf |
|
56 | - confvolume:/etc/rhodecode/conf | |
57 | - logvolume:/var/log/rhodecode |
|
57 | - logvolume:/var/log/rhodecode | |
58 |
|
58 | |||
59 | logging: |
|
59 | logging: | |
60 | *custom-logging |
|
60 | *custom-logging | |
61 |
|
61 | |||
62 | labels: |
|
62 | labels: | |
63 | - "traefik.enable=false" |
|
63 | - "traefik.enable=false" | |
64 | #- "traefik.http.routers.channelstream.entrypoints=http" |
|
64 | #- "traefik.http.routers.channelstream.entrypoints=http" | |
65 | #- "traefik.http.services.channelstream.loadbalancer.server.port=9800" |
|
65 | #- "traefik.http.services.channelstream.loadbalancer.server.port=9800" | |
66 |
|
66 | |||
67 | profiles: |
|
67 | profiles: | |
68 | ["channelstream"] |
|
68 | ["channelstream"] | |
69 |
|
69 | |||
70 | nginx: |
|
70 | nginx: | |
71 | networks: |
|
71 | networks: | |
72 | - rhodecode_network |
|
72 | - rhodecode_network | |
73 |
image: library/nginx:1.23. |
|
73 | image: library/nginx:1.23.3 | |
74 |
|
74 | |||
75 | restart: always |
|
75 | restart: always | |
76 |
|
76 | |||
77 | environment: |
|
77 | environment: | |
78 | NGINX_ENTRYPOINT_QUIET_LOGS: 1 |
|
78 | NGINX_ENTRYPOINT_QUIET_LOGS: 1 | |
79 | env_file: |
|
79 | env_file: | |
80 | - ${RC_ENV_FILE:?must-specify-rc-env-file} |
|
80 | - ${RC_ENV_FILE:?must-specify-rc-env-file} | |
81 |
|
81 | |||
82 | healthcheck: |
|
82 | healthcheck: | |
83 | # change port 80 to 443 when only using SSL |
|
83 | # change port 80 to 443 when only using SSL | |
84 | test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:80/_health" ] |
|
84 | test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:80/_health" ] | |
85 | timeout: 30s |
|
85 | timeout: 30s | |
86 | interval: 60s |
|
86 | interval: 60s | |
87 | retries: 10 |
|
87 | retries: 10 | |
88 |
|
88 | |||
89 | # depends_on: |
|
89 | # depends_on: | |
90 | # - channelstream |
|
90 | # - channelstream | |
91 |
|
91 | |||
92 | volumes: |
|
92 | volumes: | |
93 | - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro |
|
93 | - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro | |
94 | - ./config/nginx/http.conf:/etc/nginx/http.conf:ro |
|
94 | - ./config/nginx/http.conf:/etc/nginx/http.conf:ro | |
95 | - ./config/nginx/proxy.conf:/etc/nginx/proxy.conf:ro |
|
95 | - ./config/nginx/proxy.conf:/etc/nginx/proxy.conf:ro | |
96 | - logvolume:/var/log/rhodecode |
|
96 | - logvolume:/var/log/rhodecode | |
97 | - rc_datavolume:/var/opt/rhodecode_data |
|
97 | - rc_datavolume:/var/opt/rhodecode_data | |
98 |
|
98 | |||
99 | logging: |
|
99 | logging: | |
100 | *custom-logging |
|
100 | *custom-logging | |
101 |
|
101 | |||
102 | labels: |
|
102 | labels: | |
103 | - "traefik.enable=true" |
|
103 | - "traefik.enable=true" | |
104 | - "traefik.http.routers.nginx.entrypoints=http" |
|
104 | - "traefik.http.routers.nginx.entrypoints=http" | |
105 | - "traefik.http.routers.nginx.rule=Host(`${RC_HOSTNAME:?must-specify-rhodecode-hostname}`) && ( PathPrefix(`/_health`) || PathPrefix(`/_channelstream`) || PathPrefix(`/_static/rhodecode`) )" |
|
105 | - "traefik.http.routers.nginx.rule=Host(`${RC_HOSTNAME:?must-specify-rhodecode-hostname}`) && ( PathPrefix(`/_health`) || PathPrefix(`/_channelstream`) || PathPrefix(`/_static/rhodecode`) )" | |
106 | - "traefik.http.services.nginx.loadbalancer.server.port=80" |
|
106 | - "traefik.http.services.nginx.loadbalancer.server.port=80" | |
107 |
|
107 | |||
108 | elasticsearch: |
|
108 | elasticsearch: | |
109 | networks: |
|
109 | networks: | |
110 | - rhodecode_network |
|
110 | - rhodecode_network | |
111 | image: elasticsearch:6.8.23 |
|
111 | image: elasticsearch:6.8.23 | |
112 |
|
112 | |||
113 | environment: |
|
113 | environment: | |
114 | - cluster.name=elasticsearch-cluster |
|
114 | - cluster.name=elasticsearch-cluster | |
115 | - network.host=0.0.0.0 |
|
115 | - network.host=0.0.0.0 | |
116 | - bootstrap.memory_lock=true |
|
116 | - bootstrap.memory_lock=true | |
117 | - discovery.type=single-node |
|
117 | - discovery.type=single-node | |
118 | - "ES_JAVA_OPTS=-Xms512m -Xmx512m" |
|
118 | - "ES_JAVA_OPTS=-Xms512m -Xmx512m" | |
119 | env_file: |
|
119 | env_file: | |
120 | - ${RC_ENV_FILE:?must-specify-rc-env-file} |
|
120 | - ${RC_ENV_FILE:?must-specify-rc-env-file} | |
121 | healthcheck: |
|
121 | healthcheck: | |
122 | # change port 80 to 443 when only using SSL |
|
122 | # change port 80 to 443 when only using SSL | |
123 | test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "elasticsearch:9200/_cat/health" ] |
|
123 | test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "elasticsearch:9200/_cat/health" ] | |
124 | timeout: 30s |
|
124 | timeout: 30s | |
125 | interval: 60s |
|
125 | interval: 60s | |
126 | retries: 10 |
|
126 | retries: 10 | |
127 |
|
127 | |||
128 | ulimits: |
|
128 | ulimits: | |
129 | memlock: |
|
129 | memlock: | |
130 | soft: -1 |
|
130 | soft: -1 | |
131 | hard: -1 |
|
131 | hard: -1 | |
132 |
|
132 | |||
133 | volumes: |
|
133 | volumes: | |
134 | - es_data:/usr/share/elasticsearch/data |
|
134 | - es_data:/usr/share/elasticsearch/data | |
135 |
|
135 | |||
136 | logging: |
|
136 | logging: | |
137 | *custom-logging |
|
137 | *custom-logging | |
138 |
|
138 | |||
139 | profiles: |
|
139 | profiles: | |
140 | ["elasticsearch"] |
|
140 | ["elasticsearch"] | |
141 |
|
141 | |||
142 | redis: |
|
142 | redis: | |
143 | networks: |
|
143 | networks: | |
144 | - rhodecode_network |
|
144 | - rhodecode_network | |
145 | image: library/redis:7.0.5 |
|
145 | image: library/redis:7.0.5 | |
146 |
|
146 | |||
147 | restart: always |
|
147 | restart: always | |
148 | env_file: |
|
148 | env_file: | |
149 | - ${RC_ENV_FILE:?must-specify-rc-env-file} |
|
149 | - ${RC_ENV_FILE:?must-specify-rc-env-file} | |
150 | command: |
|
150 | command: | |
151 | - "redis-server" |
|
151 | - "redis-server" | |
152 | - "/etc/redis/redis.conf" |
|
152 | - "/etc/redis/redis.conf" | |
153 | - "--maxmemory-policy allkeys-lru" |
|
153 | - "--maxmemory-policy allkeys-lru" | |
154 | - "--maxmemory ${RC_REDIS_MAXMEMORY:?must-specify-redis-maxmemory}" |
|
154 | - "--maxmemory ${RC_REDIS_MAXMEMORY:?must-specify-redis-maxmemory}" | |
155 |
|
155 | |||
156 | # ports: |
|
156 | # ports: | |
157 | # - "127.0.0.1::6379" |
|
157 | # - "127.0.0.1::6379" | |
158 |
|
158 | |||
159 | healthcheck: |
|
159 | healthcheck: | |
160 | test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] |
|
160 | test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] | |
161 | interval: 60s |
|
161 | interval: 60s | |
162 |
|
162 | |||
163 | volumes: |
|
163 | volumes: | |
164 | - ./config/redis/redis.conf:/etc/redis/redis.conf:ro |
|
164 | - ./config/redis/redis.conf:/etc/redis/redis.conf:ro | |
165 | - logvolume:/var/log/rhodecode |
|
165 | - logvolume:/var/log/rhodecode | |
166 | - redis_data:/data |
|
166 | - redis_data:/data | |
167 |
|
167 | |||
168 | profiles: |
|
168 | profiles: | |
169 | ["redis"] |
|
169 | ["redis"] | |
170 |
|
170 | |||
171 | logging: |
|
171 | logging: | |
172 | *custom-logging |
|
172 | *custom-logging | |
173 |
|
173 | |||
174 | database: |
|
174 | database: | |
175 | networks: |
|
175 | networks: | |
176 | - rhodecode_network |
|
176 | - rhodecode_network | |
177 | image: library/postgres:14.6 |
|
177 | image: library/postgres:14.6 | |
178 |
|
178 | |||
179 | environment: |
|
179 | environment: | |
180 | POSTGRES_DB: ${DB_NAME:?must-specify-db-name} |
|
180 | POSTGRES_DB: ${DB_NAME:?must-specify-db-name} | |
181 | POSTGRES_USER: ${DB_USER:?must-specify-db-user} |
|
181 | POSTGRES_USER: ${DB_USER:?must-specify-db-user} | |
182 | PGUSER: ${DB_USER:?must-specify-db-user} |
|
182 | PGUSER: ${DB_USER:?must-specify-db-user} | |
183 | POSTGRES_PASSWORD: ${DB_PASSWORD:?must-specify-db-password} |
|
183 | POSTGRES_PASSWORD: ${DB_PASSWORD:?must-specify-db-password} | |
184 | POSTGRES_HOST_AUTH_METHOD: md5 |
|
184 | POSTGRES_HOST_AUTH_METHOD: md5 | |
185 | POSTGRES_INITDB_ARGS: "--auth-host=md5 --auth-local=md5" |
|
185 | POSTGRES_INITDB_ARGS: "--auth-host=md5 --auth-local=md5" | |
186 | env_file: |
|
186 | env_file: | |
187 | - ${RC_ENV_FILE:?must-specify-rc-env-file} |
|
187 | - ${RC_ENV_FILE:?must-specify-rc-env-file} | |
188 |
|
188 | |||
189 | restart: always |
|
189 | restart: always | |
190 | command: |
|
190 | command: | |
191 | - "postgres" |
|
191 | - "postgres" | |
192 | - "-c" |
|
192 | - "-c" | |
193 | - "log_statement=ddl" |
|
193 | - "log_statement=ddl" | |
194 | - "-c" |
|
194 | - "-c" | |
195 | - "config_file=/etc/conf.d/pg_customized.conf" |
|
195 | - "config_file=/etc/conf.d/pg_customized.conf" | |
196 |
|
196 | |||
197 | # ports: |
|
197 | # ports: | |
198 | # - "127.0.0.1::5432" |
|
198 | # - "127.0.0.1::5432" | |
199 |
|
199 | |||
200 | healthcheck: |
|
200 | healthcheck: | |
201 | test: ["CMD-SHELL", "pg_isready", '-U', "$DB_USER"] |
|
201 | test: ["CMD-SHELL", "pg_isready", '-U', "$DB_USER"] | |
202 | interval: 10s |
|
202 | interval: 10s | |
203 | timeout: 5s |
|
203 | timeout: 5s | |
204 | retries: 5 |
|
204 | retries: 5 | |
205 |
|
205 | |||
206 | volumes: |
|
206 | volumes: | |
207 | - $PWD/config/database/pg_customized.conf:/etc/conf.d/pg_customized.conf:ro |
|
207 | - $PWD/config/database/pg_customized.conf:/etc/conf.d/pg_customized.conf:ro | |
208 | # db dumps reverse mount |
|
208 | # db dumps reverse mount | |
209 | - $PWD/.custom/db_dump:/var/rc-data-dump |
|
209 | - $PWD/.custom/db_dump:/var/rc-data-dump | |
210 | # save the pg_data volume |
|
210 | # save the pg_data volume | |
211 | - pg_data:/var/lib/postgresql/data |
|
211 | - pg_data:/var/lib/postgresql/data | |
212 | - logvolume:/var/log/rhodecode |
|
212 | - logvolume:/var/log/rhodecode | |
213 |
|
213 | |||
214 | profiles: |
|
214 | profiles: | |
215 | ["postgres"] |
|
215 | ["postgres"] | |
216 |
|
216 | |||
217 | logging: |
|
217 | logging: | |
218 | *custom-logging |
|
218 | *custom-logging | |
219 |
|
219 | |||
220 | database-mysql: |
|
220 | database-mysql: | |
221 | networks: |
|
221 | networks: | |
222 | - rhodecode_network |
|
222 | - rhodecode_network | |
223 | image: library/mysql:8.0.31 |
|
223 | image: library/mysql:8.0.31 | |
224 |
|
224 | |||
225 | environment: |
|
225 | environment: | |
226 | MYSQL_DATABASE: ${DB_NAME:?must-specify-db-name} |
|
226 | MYSQL_DATABASE: ${DB_NAME:?must-specify-db-name} | |
227 | MYSQL_USER: ${DB_USER:?must-specify-db-user} |
|
227 | MYSQL_USER: ${DB_USER:?must-specify-db-user} | |
228 | MYSQL_PASSWORD: ${DB_PASSWORD:?must-specify-db-password} |
|
228 | MYSQL_PASSWORD: ${DB_PASSWORD:?must-specify-db-password} | |
229 | MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:?must-specify-db-password} |
|
229 | MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:?must-specify-db-password} | |
230 | env_file: |
|
230 | env_file: | |
231 | - ${RC_ENV_FILE:?must-specify-rc-env-file} |
|
231 | - ${RC_ENV_FILE:?must-specify-rc-env-file} | |
232 |
|
232 | |||
233 | restart: always |
|
233 | restart: always | |
234 |
|
234 | |||
235 | # ports: |
|
235 | # ports: | |
236 | # - "127.0.0.1::3306" |
|
236 | # - "127.0.0.1::3306" | |
237 |
|
237 | |||
238 | volumes: |
|
238 | volumes: | |
239 | - ./config/database/mysql_customized.conf:/etc/mysql/conf.d/config-file.cnf:ro |
|
239 | - ./config/database/mysql_customized.conf:/etc/mysql/conf.d/config-file.cnf:ro | |
240 | # save the mysql_data volume |
|
240 | # save the mysql_data volume | |
241 | - $PWD/mysql_dir:/var/lib/mysql |
|
241 | - $PWD/mysql_dir:/var/lib/mysql | |
242 | - logvolume:/var/log/rhodecode |
|
242 | - logvolume:/var/log/rhodecode | |
243 |
|
243 | |||
244 | profiles: |
|
244 | profiles: | |
245 | ["mysql"] |
|
245 | ["mysql"] | |
246 |
|
246 | |||
247 | logging: |
|
247 | logging: | |
248 | *custom-logging |
|
248 | *custom-logging |
General Comments 0
You need to be logged in to leave comments.
Login now