Show More
@@ -0,0 +1,12 b'' | |||||
|
1 | Put any custom overrides and compose files here. | |||
|
2 | ||||
|
3 | e.g | |||
|
4 | ||||
|
5 | - docker-compose-services.override.yaml | |||
|
6 | - docker-compose-router.override.yaml | |||
|
7 | - docker-compose-metrics.override.yaml | |||
|
8 | - docker-compose-apps.override.yaml | |||
|
9 | ||||
|
10 | Passing variables to containers | |||
|
11 | ||||
|
12 | .runtime.env No newline at end of file |
@@ -0,0 +1,31 b'' | |||||
|
1 | version: '3.9' | |||
|
2 | ||||
|
3 | services: | |||
|
4 | ||||
|
5 | rhodecode: | |||
|
6 | ports: | |||
|
7 | - "10020:10020" | |||
|
8 | environment: | |||
|
9 | DB_UPGRADE: 0 # run the DB upgrade | |||
|
10 | SETUP_APP: 0 # run the application default settings setup, can be turned off after initial run | |||
|
11 | ||||
|
12 | deploy: | |||
|
13 | replicas: 1 | |||
|
14 | ||||
|
15 | vcsserver: | |||
|
16 | environment: | |||
|
17 | {} | |||
|
18 | deploy: | |||
|
19 | replicas: 1 | |||
|
20 | ||||
|
21 | sshd: | |||
|
22 | {} | |||
|
23 | ||||
|
24 | svn: | |||
|
25 | {} | |||
|
26 | ||||
|
27 | celery-beat: | |||
|
28 | {} | |||
|
29 | ||||
|
30 | celery: | |||
|
31 | {} |
@@ -0,0 +1,31 b'' | |||||
|
1 | version: '3.9' | |||
|
2 | ||||
|
3 | services: | |||
|
4 | ||||
|
5 | promtail: | |||
|
6 | {} | |||
|
7 | ||||
|
8 | loki: | |||
|
9 | labels: | |||
|
10 | - "traefik.enable=false" | |||
|
11 | # - "traefik.http.services.loki.loadbalancer.server.port=3100" | |||
|
12 | # - "traefik.http.services.loki.loadbalancer.server.port=9095" | |||
|
13 | ||||
|
14 | prometheus: | |||
|
15 | {} | |||
|
16 | ||||
|
17 | node-exporter: | |||
|
18 | {} | |||
|
19 | ||||
|
20 | statsd-exporter: | |||
|
21 | {} | |||
|
22 | ||||
|
23 | grafana: | |||
|
24 | ||||
|
25 | labels: | |||
|
26 | # SSL + proxy prefix | |||
|
27 | - "traefik.http.routers.grafana-rt.service=grafana-ssl" | |||
|
28 | - "traefik.http.routers.grafana-rt.entrypoints=https" | |||
|
29 | - "traefik.http.routers.grafana-rt.rule=Host(`your-domain.com`) && PathPrefix(`/_grafana`)" | |||
|
30 | - "traefik.http.routers.grafana-rt.tls=true" | |||
|
31 | - "traefik.http.services.grafana-ssl.loadbalancer.server.port=3000" No newline at end of file |
@@ -0,0 +1,43 b'' | |||||
|
1 | version: '3.9' | |||
|
2 | ||||
|
3 | ## docker network create -d overlay lb-net | |||
|
4 | services: | |||
|
5 | ||||
|
6 | traefik: | |||
|
7 | ||||
|
8 | volumes: | |||
|
9 | # So that Traefik can listen to the Docker events | |||
|
10 | - /var/run/docker.sock:/var/run/docker.sock | |||
|
11 | # custom traefik config, enable SSL etc.. | |||
|
12 | - $PWD/.custom/traefik_custom:/etc/traefik | |||
|
13 | ||||
|
14 | portainer: | |||
|
15 | # Run with COMPOSE_PROFILES=portainer | |||
|
16 | # to access portainer set HEADER `X-Docker-Host=portainer` | |||
|
17 | image: portainer/portainer-ce:latest | |||
|
18 | restart: always | |||
|
19 | volumes: | |||
|
20 | - portainer_data:/data | |||
|
21 | - /var/run/docker.sock:/var/run/docker.sock | |||
|
22 | deploy: | |||
|
23 | mode: replicated | |||
|
24 | replicas: 1 | |||
|
25 | placement: | |||
|
26 | constraints: | |||
|
27 | # limit swarm deploy to MANAGER only | |||
|
28 | - node.role == manager | |||
|
29 | ||||
|
30 | networks: | |||
|
31 | - rhodecode_network | |||
|
32 | labels: | |||
|
33 | - "traefik.enable=true" | |||
|
34 | - "traefik.http.routers.portainer.entrypoints=https" | |||
|
35 | - "traefik.http.routers.portainer.rule=Headers(`X-Docker-Host`, `portainer`)" | |||
|
36 | - "traefik.http.services.portainer.loadbalancer.server.port=9000" | |||
|
37 | ||||
|
38 | profiles: | |||
|
39 | ["portainer"] | |||
|
40 | ||||
|
41 | volumes: | |||
|
42 | portainer_data: | |||
|
43 | external: true No newline at end of file |
@@ -0,0 +1,24 b'' | |||||
|
1 | version: '3.9' | |||
|
2 | ## This is a final override file for services stack | |||
|
3 | ## Add your own customizations | |||
|
4 | ||||
|
5 | ## docker network create -d overlay lb-net | |||
|
6 | services: | |||
|
7 | ||||
|
8 | database: | |||
|
9 | {} | |||
|
10 | ||||
|
11 | database-mysql: | |||
|
12 | {} | |||
|
13 | ||||
|
14 | redis: | |||
|
15 | {} | |||
|
16 | ||||
|
17 | elasticsearch: | |||
|
18 | {} | |||
|
19 | ||||
|
20 | nginx: | |||
|
21 | {} | |||
|
22 | ||||
|
23 | channelstream: | |||
|
24 | {} No newline at end of file |
@@ -9,8 +9,8 b' RC_VERSION="4.28.0.REL20221120_SOURCE"' | |||||
9 |
|
9 | |||
10 | # ce, or ee |
|
10 | # ce, or ee | |
11 | RC_EDITION=ee |
|
11 | RC_EDITION=ee | |
12 |
RC_IMAGE_CE="rhodecode/rhodecode- |
|
12 | RC_IMAGE_CE="rhodecode/rhodecode-ce:$RC_VERSION" | |
13 |
RC_IMAGE_EE="rhodecode/rhodecode- |
|
13 | RC_IMAGE_EE="rhodecode/rhodecode-ee:$RC_VERSION" | |
14 |
|
14 | |||
15 | # Database bootstrap/access credentials |
|
15 | # Database bootstrap/access credentials | |
16 | DB_NAME=rhodecode |
|
16 | DB_NAME=rhodecode |
@@ -6,8 +6,9 b'' | |||||
6 | # Source code downloaded |
|
6 | # Source code downloaded | |
7 | .source/* |
|
7 | .source/* | |
8 |
|
8 | |||
9 | # Custom / override wont be tracked |
|
9 | # Custom / override wont be tracked, except README file | |
10 | .custom/* |
|
10 | .custom/* | |
|
11 | !.custom/README.md | |||
11 |
|
12 | |||
12 | # LOGS |
|
13 | # LOGS | |
13 | logs/*.log |
|
14 | logs/*.log | |
@@ -19,5 +20,4 b' logs/postgres/*.log' | |||||
19 | .idea |
|
20 | .idea | |
20 | config/_shared/.rcmetadata.json |
|
21 | config/_shared/.rcmetadata.json | |
21 |
|
22 | |||
22 | .rccontrol-bootstrap |
|
|||
23 | .rccontrol.ini No newline at end of file |
|
23 | .rccontrol.ini |
@@ -41,6 +41,7 b' log_format json_log_custom escape=json' | |||||
41 | '"remote_user":"$remote_user",' |
|
41 | '"remote_user":"$remote_user",' | |
42 | '"time_local":"$time_local",' |
|
42 | '"time_local":"$time_local",' | |
43 | '"remote_addr":"$remote_addr",' |
|
43 | '"remote_addr":"$remote_addr",' | |
|
44 | '"host":"$host",' | |||
44 | '"proxy_x_forwarded_for":"$proxy_add_x_forwarded_for",' |
|
45 | '"proxy_x_forwarded_for":"$proxy_add_x_forwarded_for",' | |
45 | '"request":"$request",' |
|
46 | '"request":"$request",' | |
46 | '"status": "$status",' |
|
47 | '"status": "$status",' | |
@@ -49,6 +50,7 b' log_format json_log_custom escape=json' | |||||
49 | '"request_time":"$request_time",' |
|
50 | '"request_time":"$request_time",' | |
50 | '"upstream_response_time":"$upstream_response_time",' |
|
51 | '"upstream_response_time":"$upstream_response_time",' | |
51 | '"http_referrer":"$http_referer",' |
|
52 | '"http_referrer":"$http_referer",' | |
|
53 | '"http_scheme":"$scheme",' | |||
52 | '"http_user_agent":"$http_user_agent"' |
|
54 | '"http_user_agent":"$http_user_agent"' | |
53 | '}'; |
|
55 | '}'; | |
54 |
|
56 | |||
@@ -56,7 +58,7 b' log_format json_log_custom escape=json' | |||||
56 | server { |
|
58 | server { | |
57 | listen 80 default; |
|
59 | listen 80 default; | |
58 | # ensure we get the proper Docker DNS resolver for load balancing. |
|
60 | # ensure we get the proper Docker DNS resolver for load balancing. | |
59 | resolver 127.0.0.11 ipv6=off; |
|
61 | resolver 127.0.0.11 ipv6=off valid=10s; | |
60 | server_name localhost 127.0.0.1; |
|
62 | server_name localhost 127.0.0.1; | |
61 | access_log /dev/stdout json_log_custom; |
|
63 | access_log /dev/stdout json_log_custom; | |
62 | error_log /dev/stdout; |
|
64 | error_log /dev/stdout; | |
@@ -68,6 +70,11 b' server {' | |||||
68 | # maximum number and size of buffers for large headers to read from client request |
|
70 | # maximum number and size of buffers for large headers to read from client request | |
69 | large_client_header_buffers 16 256k; |
|
71 | large_client_header_buffers 16 256k; | |
70 |
|
72 | |||
|
73 | location /_health { | |||
|
74 | add_header 'Content-Type' 'application/json'; | |||
|
75 | return 200 '{"status":"UP"}'; | |||
|
76 | } | |||
|
77 | ||||
71 | ## serve static files by nginx, recommended |
|
78 | ## serve static files by nginx, recommended | |
72 | location /_static/rhodecode { |
|
79 | location /_static/rhodecode { | |
73 | gzip on; |
|
80 | gzip on; | |
@@ -84,6 +91,7 b' server {' | |||||
84 |
|
91 | |||
85 | ## channelstream location handler, if channelstream live chat and notifications |
|
92 | ## channelstream location handler, if channelstream live chat and notifications | |
86 | ## are enable this will proxy the requests to channelstream websocket server |
|
93 | ## are enable this will proxy the requests to channelstream websocket server | |
|
94 | set $upstream_channelstream channelstream:8000; | |||
87 | location /_channelstream { |
|
95 | location /_channelstream { | |
88 | rewrite /_channelstream/(.*) /$1 break; |
|
96 | rewrite /_channelstream/(.*) /$1 break; | |
89 | gzip off; |
|
97 | gzip off; | |
@@ -94,17 +102,18 b' server {' | |||||
94 | proxy_read_timeout 10m; |
|
102 | proxy_read_timeout 10m; | |
95 |
|
103 | |||
96 | proxy_set_header Host $host; |
|
104 | proxy_set_header Host $host; | |
97 |
proxy_set_header |
|
105 | proxy_set_header Referer $http_referer; | |
98 | proxy_set_header X-Url-Scheme $scheme; |
|
106 | proxy_set_header X-Url-Scheme $scheme; | |
99 |
proxy_set_header X- |
|
107 | proxy_set_header X-Real-IP $remote_addr; | |
100 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|
108 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
|
109 | proxy_set_header X-Forwarded-Proto $scheme; | |||
101 |
|
110 | |||
102 | proxy_http_version 1.1; |
|
111 | proxy_http_version 1.1; | |
103 | proxy_set_header Upgrade $http_upgrade; |
|
112 | proxy_set_header Upgrade $http_upgrade; | |
104 | proxy_set_header Connection "upgrade"; |
|
113 | proxy_set_header Connection "upgrade"; | |
105 |
|
114 | |||
106 | set $upstream_channelstream http://channelstream:8000; |
|
115 | proxy_pass http://$upstream_channelstream; | |
107 |
proxy_ |
|
116 | proxy_redirect http://$upstream_channelstream/ /_channelstream; | |
108 | } |
|
117 | } | |
109 |
|
118 | |||
110 | # ## rate limit this endpoint to prevent login page brute-force attacks |
|
119 | # ## rate limit this endpoint to prevent login page brute-force attacks | |
@@ -113,16 +122,16 b' server {' | |||||
113 | # try_files $uri @rhodecode_http; |
|
122 | # try_files $uri @rhodecode_http; | |
114 | # } |
|
123 | # } | |
115 |
|
124 | |||
116 | location / { |
|
125 | # location / { | |
117 | include /etc/nginx/proxy.conf; |
|
126 | # include /etc/nginx/proxy.conf; | |
118 | try_files $uri @rhodecode_http; |
|
127 | # try_files $uri @rhodecode_http; | |
119 | } |
|
128 | # } | |
120 |
|
129 | # | ||
121 | location @rhodecode_http { |
|
130 | # set $upstream http://rhodecode:10020; | |
122 | set $upstream http://rhodecode:10020; |
|
131 | # location @rhodecode_http { | |
123 | include /etc/nginx/proxy.conf; |
|
132 | # include /etc/nginx/proxy.conf; | |
124 | proxy_pass $upstream; |
|
133 | # proxy_pass $upstream; | |
125 | } |
|
134 | # } | |
126 |
|
135 | |||
127 | ## Custom 502 error page. |
|
136 | ## Custom 502 error page. | |
128 | ## Will be displayed while RhodeCode server is turned off |
|
137 | ## Will be displayed while RhodeCode server is turned off |
@@ -27,9 +27,9 b' proxy_set_header X-Real-IP $remote_addr;' | |||||
27 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|
27 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
28 | proxy_set_header Proxy-host $proxy_host; |
|
28 | proxy_set_header Proxy-host $proxy_host; | |
29 |
|
29 | |||
30 |
proxy_connect_timeout |
|
30 | proxy_connect_timeout 21600; | |
31 |
proxy_send_timeout |
|
31 | proxy_send_timeout 21600; | |
32 |
proxy_read_timeout |
|
32 | proxy_read_timeout 21600; | |
33 | proxy_buffers 8 32k; |
|
33 | proxy_buffers 8 32k; | |
34 |
|
34 | |||
35 | add_header X-Frame-Options SAMEORIGIN; |
|
35 | add_header X-Frame-Options SAMEORIGIN; |
@@ -7,8 +7,8 b' entryPoints:' | |||||
7 | https: |
|
7 | https: | |
8 | address: ":443" |
|
8 | address: ":443" | |
9 |
|
9 | |||
10 |
|
|
10 | ssh: | |
11 |
|
|
11 | address: ":${RC_SSH_PORT:?must-specify-ssh-port}" | |
12 |
|
12 | |||
13 | traefik: |
|
13 | traefik: | |
14 | address: ":7000" |
|
14 | address: ":7000" |
@@ -11,13 +11,6 b' x-logging: &custom-logging' | |||||
11 | loki-timeout: "1s" |
|
11 | loki-timeout: "1s" | |
12 | loki-max-backoff: "800ms" |
|
12 | loki-max-backoff: "800ms" | |
13 |
|
13 | |||
14 | volumes: |
|
|||
15 |
|
||||
16 | # volume for RhodeCode repo-store, it's where the repositories will be stored |
|
|||
17 | rhodecode_repos: |
|
|||
18 | labels: |
|
|||
19 | "keep": 1 |
|
|||
20 |
|
||||
21 |
|
14 | |||
22 | services: |
|
15 | services: | |
23 |
|
16 | |||
@@ -35,8 +28,11 b' services:' | |||||
35 | "--name=gunicorn-rhodecode-1", |
|
28 | "--name=gunicorn-rhodecode-1", | |
36 | "--error-logfile=-", |
|
29 | "--error-logfile=-", | |
37 | "--paster=/etc/rhodecode/conf/rhodecode.optimized.ini", |
|
30 | "--paster=/etc/rhodecode/conf/rhodecode.optimized.ini", | |
38 | "--config=/etc/rhodecode/conf/gunicorn_conf.py" |
|
31 | "--config=/etc/rhodecode/conf/gunicorn_conf_rc.py" | |
39 | ] |
|
32 | ] | |
|
33 | deploy: | |||
|
34 | # override this in .custom/docker-compose-apps.override.yaml to scale up | |||
|
35 | replicas: 1 | |||
40 |
|
36 | |||
41 | # ports: |
|
37 | # ports: | |
42 | # - "127.0.0.1::10020" |
|
38 | # - "127.0.0.1::10020" | |
@@ -85,7 +81,7 b' services:' | |||||
85 | volumes: |
|
81 | volumes: | |
86 | - confvolume:/etc/rhodecode/conf |
|
82 | - confvolume:/etc/rhodecode/conf | |
87 | - logvolume:/var/log/rhodecode |
|
83 | - logvolume:/var/log/rhodecode | |
88 |
- r |
|
84 | - rc_reposvolume:/var/opt/rhodecode_repo_store | |
89 | - rc_datavolume:/var/opt/rhodecode_data |
|
85 | - rc_datavolume:/var/opt/rhodecode_data | |
90 |
|
86 | |||
91 | tmpfs: |
|
87 | tmpfs: | |
@@ -95,7 +91,10 b' services:' | |||||
95 | *custom-logging |
|
91 | *custom-logging | |
96 |
|
92 | |||
97 | labels: |
|
93 | labels: | |
98 |
- "traefik.enable= |
|
94 | - "traefik.enable=true" | |
|
95 | - "traefik.http.routers.rhodecode.entrypoints=http" | |||
|
96 | - "traefik.http.routers.rhodecode.rule=Host(`${RHODECODE_HOSTNAME:?must-specify-rhodecode-hostname}`)" | |||
|
97 | - "traefik.http.services.rhodecode.loadbalancer.server.port=10020" | |||
99 |
|
98 | |||
100 | vcsserver: |
|
99 | vcsserver: | |
101 | networks: |
|
100 | networks: | |
@@ -113,6 +112,9 b' services:' | |||||
113 | "--paster=/etc/rhodecode/conf/vcsserver.optimized.ini", |
|
112 | "--paster=/etc/rhodecode/conf/vcsserver.optimized.ini", | |
114 | "--config=/etc/rhodecode/conf/gunicorn_conf_vcs.py" |
|
113 | "--config=/etc/rhodecode/conf/gunicorn_conf_vcs.py" | |
115 | ] |
|
114 | ] | |
|
115 | deploy: | |||
|
116 | # override this in .custom/docker-compose-apps.override.yaml to scale up | |||
|
117 | replicas: 1 | |||
116 |
|
118 | |||
117 | # ports: |
|
119 | # ports: | |
118 | # - "127.0.0.1::10010" |
|
120 | # - "127.0.0.1::10010" | |
@@ -137,7 +139,7 b' services:' | |||||
137 | volumes: |
|
139 | volumes: | |
138 | - confvolume:/etc/rhodecode/conf |
|
140 | - confvolume:/etc/rhodecode/conf | |
139 | - logvolume:/var/log/rhodecode |
|
141 | - logvolume:/var/log/rhodecode | |
140 |
- r |
|
142 | - rc_reposvolume:/var/opt/rhodecode_repo_store | |
141 | - rc_datavolume:/var/opt/rhodecode_data |
|
143 | - rc_datavolume:/var/opt/rhodecode_data | |
142 |
|
144 | |||
143 | logging: |
|
145 | logging: | |
@@ -178,7 +180,7 b' services:' | |||||
178 | volumes: |
|
180 | volumes: | |
179 | - confvolume:/etc/rhodecode/conf |
|
181 | - confvolume:/etc/rhodecode/conf | |
180 | - logvolume:/var/log/rhodecode |
|
182 | - logvolume:/var/log/rhodecode | |
181 |
- r |
|
183 | - rc_reposvolume:/var/opt/rhodecode_repo_store | |
182 | - rc_datavolume:/var/opt/rhodecode_data |
|
184 | - rc_datavolume:/var/opt/rhodecode_data | |
183 |
|
185 | |||
184 | logging: |
|
186 | logging: | |
@@ -222,7 +224,7 b' services:' | |||||
222 | volumes: |
|
224 | volumes: | |
223 | - confvolume:/etc/rhodecode/conf |
|
225 | - confvolume:/etc/rhodecode/conf | |
224 | - logvolume:/var/log/rhodecode |
|
226 | - logvolume:/var/log/rhodecode | |
225 |
- r |
|
227 | - rc_reposvolume:/var/opt/rhodecode_repo_store | |
226 | - rc_datavolume:/var/opt/rhodecode_data |
|
228 | - rc_datavolume:/var/opt/rhodecode_data | |
227 |
|
229 | |||
228 | logging: |
|
230 | logging: | |
@@ -269,7 +271,7 b' services:' | |||||
269 | volumes: |
|
271 | volumes: | |
270 | - confvolume:/etc/rhodecode/conf |
|
272 | - confvolume:/etc/rhodecode/conf | |
271 | - logvolume:/var/log/rhodecode |
|
273 | - logvolume:/var/log/rhodecode | |
272 |
- r |
|
274 | - rc_reposvolume:/var/opt/rhodecode_repo_store | |
273 |
|
275 | |||
274 | logging: |
|
276 | logging: | |
275 | *custom-logging |
|
277 | *custom-logging | |
@@ -297,7 +299,7 b' services:' | |||||
297 | volumes: |
|
299 | volumes: | |
298 | - confvolume:/etc/rhodecode/conf |
|
300 | - confvolume:/etc/rhodecode/conf | |
299 | - logvolume:/var/log/rhodecode |
|
301 | - logvolume:/var/log/rhodecode | |
300 |
- r |
|
302 | - rc_reposvolume:/var/opt/rhodecode_repo_store | |
301 | - rc_datavolume:/var/opt/rhodecode_data |
|
303 | - rc_datavolume:/var/opt/rhodecode_data | |
302 |
|
304 | |||
303 | logging: |
|
305 | logging: |
@@ -35,6 +35,11 b' volumes:' | |||||
35 | rc_datavolume: |
|
35 | rc_datavolume: | |
36 | external: true |
|
36 | external: true | |
37 |
|
37 | |||
|
38 | # volume for RhodeCode repo-store, it's where the repositories will be stored | |||
|
39 | # must be run via: docker volume create --name=rc_reposvolume | |||
|
40 | rc_reposvolume: | |||
|
41 | external: true | |||
|
42 | ||||
38 | networks: |
|
43 | networks: | |
39 |
|
44 | |||
40 | # SHARED network for all containers |
|
45 | # SHARED network for all containers |
@@ -108,10 +108,6 b' services:' | |||||
108 | volumes: |
|
108 | volumes: | |
109 | - ./config/loki:/etc/loki |
|
109 | - ./config/loki:/etc/loki | |
110 |
|
110 | |||
111 | labels: |
|
|||
112 | - "traefik.enable=false" |
|
|||
113 | - "traefik.http.services.loki.loadbalancer.server.port=3100" |
|
|||
114 | - "traefik.http.services.loki.loadbalancer.server.port=9095" |
|
|||
115 |
|
111 | |||
116 | promtail: |
|
112 | promtail: | |
117 | image: grafana/promtail:latest |
|
113 | image: grafana/promtail:latest |
@@ -45,34 +45,3 b' services:' | |||||
45 |
|
45 | |||
46 | logging: |
|
46 | logging: | |
47 | *custom-logging |
|
47 | *custom-logging | |
48 |
|
||||
49 | portainer: |
|
|||
50 | # Run with COMPOSE_PROFILES=portainer |
|
|||
51 | # to access portainer set HEADER `X-Docker-Host=portainer` |
|
|||
52 | image: portainer/portainer-ce:latest |
|
|||
53 | restart: always |
|
|||
54 | volumes: |
|
|||
55 | - portainer_data:/data |
|
|||
56 | - /var/run/docker.sock:/var/run/docker.sock |
|
|||
57 | deploy: |
|
|||
58 | mode: replicated |
|
|||
59 | replicas: 1 |
|
|||
60 | placement: |
|
|||
61 | constraints: |
|
|||
62 | # limit swarm deploy to MANAGER only |
|
|||
63 | - node.role == manager |
|
|||
64 |
|
||||
65 | networks: |
|
|||
66 | - rhodecode_network |
|
|||
67 | labels: |
|
|||
68 | - "traefik.enable=true" |
|
|||
69 | - "traefik.http.services.portainer.loadbalancer.server.port=9000" |
|
|||
70 | - "traefik.http.routers.portainer.entrypoints=https" |
|
|||
71 | - "traefik.http.routers.portainer.rule=Headers(`X-Docker-Host`, `portainer`)" |
|
|||
72 |
|
||||
73 | profiles: |
|
|||
74 | ["portainer"] |
|
|||
75 |
|
||||
76 | volumes: |
|
|||
77 | portainer_data: |
|
|||
78 | external: true No newline at end of file |
|
@@ -43,10 +43,10 b' services:' | |||||
43 | # ports: |
|
43 | # ports: | |
44 | # - "127.0.0.1:9800:9800" |
|
44 | # - "127.0.0.1:9800:9800" | |
45 |
|
45 | |||
46 | command: ["channelstream", "-i", "/etc/rhodecode/conf/channelstream.ini"] |
|
46 | command: ["channelstream"] | |
47 |
|
47 | |||
48 |
env |
|
48 | env_file: | |
49 | CHANNELSTREAM_ALLOW_POSTING_FROM: 0.0.0.0 |
|
49 | - .custom/.runtime.env | |
50 |
|
50 | |||
51 | healthcheck: |
|
51 | healthcheck: | |
52 | test: [ "CMD", "curl", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://channelstream:8000/admin/sign_in" ] |
|
52 | test: [ "CMD", "curl", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://channelstream:8000/admin/sign_in" ] | |
@@ -81,7 +81,7 b' services:' | |||||
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/_ |
|
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 | |
@@ -102,8 +102,8 b' services:' | |||||
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(`${RHODECODE_HOSTNAME:?must-specify-rhodecode-hostname}`) && ( PathPrefix(`/_health`) || PathPrefix(`/_channelstream`) || PathPrefix(`/_static/rhodecode`) )" | |||
105 | - "traefik.http.services.nginx.loadbalancer.server.port=80" |
|
106 | - "traefik.http.services.nginx.loadbalancer.server.port=80" | |
106 | - "traefik.http.routers.nginx.rule=Host(`${RHODECODE_HOSTNAME:?must-specify-rhodecode-hostname}`)" |
|
|||
107 |
|
107 | |||
108 | elasticsearch: |
|
108 | elasticsearch: | |
109 | networks: |
|
109 | networks: |
This diff has been collapsed as it changes many lines, (1306 lines changed) Show them Hide them | |||||
@@ -36,9 +36,6 b' rccontrol_usage() {' | |||||
36 | printf "Commands:\n" |
|
36 | printf "Commands:\n" | |
37 | echo " self-update update rccontrol and it's docker definitions" |
|
37 | echo " self-update update rccontrol and it's docker definitions" | |
38 | echo " bootstrap Bootstrap this machine, check docker version and install rhodecode-network" |
|
38 | echo " bootstrap Bootstrap this machine, check docker version and install rhodecode-network" | |
39 | echo " stack run one of available cluster stacks, use -h for more details" |
|
|||
40 | echo " stack-status show stack status" |
|
|||
41 | echo " stack-upgrade upgrade ALL stack status" |
|
|||
42 | echo |
|
39 | echo | |
43 | printf "Build Commands:\n" |
|
40 | printf "Build Commands:\n" | |
44 | echo " get-build-artifacts Fetch Artifacts to run installer based build" |
|
41 | echo " get-build-artifacts Fetch Artifacts to run installer based build" | |
@@ -46,10 +43,13 b' rccontrol_usage() {' | |||||
46 | echo " get-build-source Fetch RhodeCode sources, store in .source dir to run a source-based builds" |
|
43 | echo " get-build-source Fetch RhodeCode sources, store in .source dir to run a source-based builds" | |
47 | echo " build-source Build RhodeCode image from source, requires upgrade-source initially" |
|
44 | echo " build-source Build RhodeCode image from source, requires upgrade-source initially" | |
48 | echo |
|
45 | echo | |
|
46 | printf "Stack Commands:\n" | |||
|
47 | echo " stack run one of available cluster stacks, use -h for more details" | |||
|
48 | echo " stack-status Show stack status" | |||
|
49 | echo " stack-upgrade upgrade ALL stack status" | |||
|
50 | echo | |||
49 | printf "CLI Commands:\n" |
|
51 | printf "CLI Commands:\n" | |
50 |
echo " cli |
|
52 | echo " cli run various CLI tools" | |
51 | echo " cli-db CLI" |
|
|||
52 | echo " cli-db-upgrade CLI" |
|
|||
53 | echo |
|
53 | echo | |
54 | printf "Backup Commands:\n" |
|
54 | printf "Backup Commands:\n" | |
55 | echo " backup-db CLI" |
|
55 | echo " backup-db CLI" | |
@@ -172,7 +172,7 b' rccontrol_bootstrap_usage() {' | |||||
172 |
|
172 | |||
173 | fi |
|
173 | fi | |
174 |
|
174 | |||
175 |
printf "Alias: in |
|
175 | printf "Alias: init\n" | |
176 | echo |
|
176 | echo | |
177 |
|
177 | |||
178 | printf "Usage:\n" |
|
178 | printf "Usage:\n" | |
@@ -318,7 +318,7 b' rccontrol_get_build_source_usage() {' | |||||
318 | fi |
|
318 | fi | |
319 |
|
319 | |||
320 | printf "Usage:\n" |
|
320 | printf "Usage:\n" | |
321 |
printf " rccontrol get-build-source |
|
321 | printf " rccontrol get-build-source [OPTIONS]\n" | |
322 | printf " rccontrol get-build-source --help | -h\n" |
|
322 | printf " rccontrol get-build-source --help | -h\n" | |
323 | echo |
|
323 | echo | |
324 |
|
324 | |||
@@ -333,6 +333,12 b' rccontrol_get_build_source_usage() {' | |||||
333 |
|
333 | |||
334 | # :command.usage_flags |
|
334 | # :command.usage_flags | |
335 | # :flag.usage |
|
335 | # :flag.usage | |
|
336 | echo " --revision REVISION" | |||
|
337 | printf " revision to download\n" | |||
|
338 | printf " Default: default\n" | |||
|
339 | echo | |||
|
340 | ||||
|
341 | # :flag.usage | |||
336 | echo " --auth-token AUTH_TOKEN" |
|
342 | echo " --auth-token AUTH_TOKEN" | |
337 | printf " Specify AUTH TOKEN to obtain sources\n" |
|
343 | printf " Specify AUTH TOKEN to obtain sources\n" | |
338 | echo |
|
344 | echo | |
@@ -343,14 +349,6 b' rccontrol_get_build_source_usage() {' | |||||
343 | printf " Default: https://code.rhodecode.com\n" |
|
349 | printf " Default: https://code.rhodecode.com\n" | |
344 | echo |
|
350 | echo | |
345 |
|
351 | |||
346 | # :command.usage_args |
|
|||
347 | printf "Arguments:\n" |
|
|||
348 |
|
||||
349 | # :argument.usage |
|
|||
350 | echo " REVISION" |
|
|||
351 | printf " revision to download\n" |
|
|||
352 | echo |
|
|||
353 |
|
||||
354 | # :command.usage_examples |
|
352 | # :command.usage_examples | |
355 | printf "Examples:\n" |
|
353 | printf "Examples:\n" | |
356 | printf " rccontrol3 get-sources $RC_CLI_VERSION_NAME\n" |
|
354 | printf " rccontrol3 get-sources $RC_CLI_VERSION_NAME\n" | |
@@ -414,8 +412,86 b' rccontrol_stack_usage() {' | |||||
414 | fi |
|
412 | fi | |
415 |
|
413 | |||
416 | printf "Usage:\n" |
|
414 | printf "Usage:\n" | |
417 |
printf " rccontrol stack |
|
415 | printf " rccontrol stack COMMAND\n" | |
418 | printf " rccontrol stack --help | -h\n" |
|
416 | printf " rccontrol stack [COMMAND] --help | -h\n" | |
|
417 | echo | |||
|
418 | # :command.usage_commands | |||
|
419 | printf "Commands:\n" | |||
|
420 | echo " router run the router stack" | |||
|
421 | echo " metrics run the router stack" | |||
|
422 | echo " services run the router stack" | |||
|
423 | echo " rhodecode run the router stack" | |||
|
424 | echo " all run all stacks" | |||
|
425 | echo | |||
|
426 | ||||
|
427 | # :command.long_usage | |||
|
428 | if [[ -n $long_usage ]]; then | |||
|
429 | printf "Options:\n" | |||
|
430 | ||||
|
431 | # :command.usage_fixed_flags | |||
|
432 | echo " --help, -h" | |||
|
433 | printf " Show this help\n" | |||
|
434 | echo | |||
|
435 | ||||
|
436 | # :command.usage_examples | |||
|
437 | printf "Examples:\n" | |||
|
438 | printf " - ./rccontrol3 stack router up # run router stack with output to\n console\n - ./rccontrol3 stack router up --detach # run router stack detached\n - ./rccontrol3 stack router down # stop whole router stack\n - ./rccontrol3 stack router ps # check status of router stack\n - ./rccontrol3 stack router -f docker-overrides.yaml up -d # run router stack\n with your overrides\n" | |||
|
439 | echo | |||
|
440 | ||||
|
441 | fi | |||
|
442 | } | |||
|
443 | ||||
|
444 | # :command.usage | |||
|
445 | rccontrol_stack_router_usage() { | |||
|
446 | if [[ -n $long_usage ]]; then | |||
|
447 | printf "rccontrol stack router - run the router stack\n" | |||
|
448 | echo | |||
|
449 | ||||
|
450 | else | |||
|
451 | printf "rccontrol stack router - run the router stack\n" | |||
|
452 | echo | |||
|
453 | ||||
|
454 | fi | |||
|
455 | ||||
|
456 | printf "Usage:\n" | |||
|
457 | printf " rccontrol stack router [SERVICES PARAMS...]\n" | |||
|
458 | printf " rccontrol stack router --help | -h\n" | |||
|
459 | echo | |||
|
460 | ||||
|
461 | # :command.long_usage | |||
|
462 | if [[ -n $long_usage ]]; then | |||
|
463 | printf "Options:\n" | |||
|
464 | ||||
|
465 | # :command.usage_fixed_flags | |||
|
466 | echo " --help, -h" | |||
|
467 | printf " Show this help\n" | |||
|
468 | echo | |||
|
469 | ||||
|
470 | # :command.usage_args | |||
|
471 | printf "Arguments:\n" | |||
|
472 | ||||
|
473 | echo " SERVICES PARAMS..." | |||
|
474 | printf " Additional arguments or flags for services command\n" | |||
|
475 | echo | |||
|
476 | ||||
|
477 | fi | |||
|
478 | } | |||
|
479 | ||||
|
480 | # :command.usage | |||
|
481 | rccontrol_stack_metrics_usage() { | |||
|
482 | if [[ -n $long_usage ]]; then | |||
|
483 | printf "rccontrol stack metrics - run the router stack\n" | |||
|
484 | echo | |||
|
485 | ||||
|
486 | else | |||
|
487 | printf "rccontrol stack metrics - run the router stack\n" | |||
|
488 | echo | |||
|
489 | ||||
|
490 | fi | |||
|
491 | ||||
|
492 | printf "Usage:\n" | |||
|
493 | printf " rccontrol stack metrics [SERVICES PARAMS...]\n" | |||
|
494 | printf " rccontrol stack metrics --help | -h\n" | |||
419 | echo |
|
495 | echo | |
420 |
|
496 | |||
421 | # :command.long_usage |
|
497 | # :command.long_usage | |
@@ -430,19 +506,116 b' rccontrol_stack_usage() {' | |||||
430 | # :command.usage_args |
|
506 | # :command.usage_args | |
431 | printf "Arguments:\n" |
|
507 | printf "Arguments:\n" | |
432 |
|
508 | |||
433 | # :argument.usage |
|
509 | echo " SERVICES PARAMS..." | |
434 | echo " NAME" |
|
510 | printf " Additional arguments or flags for services command\n" | |
435 | printf " Stack name\n" |
|
511 | echo | |
436 | printf " Allowed: router, metrics, services, rhodecode\n" |
|
512 | ||
|
513 | fi | |||
|
514 | } | |||
|
515 | ||||
|
516 | # :command.usage | |||
|
517 | rccontrol_stack_services_usage() { | |||
|
518 | if [[ -n $long_usage ]]; then | |||
|
519 | printf "rccontrol stack services - run the router stack\n" | |||
|
520 | echo | |||
|
521 | ||||
|
522 | else | |||
|
523 | printf "rccontrol stack services - run the router stack\n" | |||
|
524 | echo | |||
|
525 | ||||
|
526 | fi | |||
|
527 | ||||
|
528 | printf "Usage:\n" | |||
|
529 | printf " rccontrol stack services [SERVICES PARAMS...]\n" | |||
|
530 | printf " rccontrol stack services --help | -h\n" | |||
|
531 | echo | |||
|
532 | ||||
|
533 | # :command.long_usage | |||
|
534 | if [[ -n $long_usage ]]; then | |||
|
535 | printf "Options:\n" | |||
|
536 | ||||
|
537 | # :command.usage_fixed_flags | |||
|
538 | echo " --help, -h" | |||
|
539 | printf " Show this help\n" | |||
437 | echo |
|
540 | echo | |
438 |
|
541 | |||
|
542 | # :command.usage_args | |||
|
543 | printf "Arguments:\n" | |||
|
544 | ||||
439 | echo " SERVICES PARAMS..." |
|
545 | echo " SERVICES PARAMS..." | |
440 | printf " Additional arguments or flags for services command\n" |
|
546 | printf " Additional arguments or flags for services command\n" | |
441 | echo |
|
547 | echo | |
442 |
|
548 | |||
443 | # :command.usage_examples |
|
549 | fi | |
444 | printf "Examples:\n" |
|
550 | } | |
445 | printf " - ./rccontrol3 stack router up # run router stack with output to\n console\n - ./rccontrol3 stack router up --detach # run router stack detached\n - ./rccontrol3 stack router down # stop whole router stack\n - ./rccontrol3 stack router ps # check status of router stack\n - ./rccontrol3 stack router -f docker-overrides.yaml up -d # run router stack\n with your overrides\n" |
|
551 | ||
|
552 | # :command.usage | |||
|
553 | rccontrol_stack_rhodecode_usage() { | |||
|
554 | if [[ -n $long_usage ]]; then | |||
|
555 | printf "rccontrol stack rhodecode - run the router stack\n" | |||
|
556 | echo | |||
|
557 | ||||
|
558 | else | |||
|
559 | printf "rccontrol stack rhodecode - run the router stack\n" | |||
|
560 | echo | |||
|
561 | ||||
|
562 | fi | |||
|
563 | ||||
|
564 | printf "Usage:\n" | |||
|
565 | printf " rccontrol stack rhodecode [SERVICES PARAMS...]\n" | |||
|
566 | printf " rccontrol stack rhodecode --help | -h\n" | |||
|
567 | echo | |||
|
568 | ||||
|
569 | # :command.long_usage | |||
|
570 | if [[ -n $long_usage ]]; then | |||
|
571 | printf "Options:\n" | |||
|
572 | ||||
|
573 | # :command.usage_fixed_flags | |||
|
574 | echo " --help, -h" | |||
|
575 | printf " Show this help\n" | |||
|
576 | echo | |||
|
577 | ||||
|
578 | # :command.usage_args | |||
|
579 | printf "Arguments:\n" | |||
|
580 | ||||
|
581 | echo " SERVICES PARAMS..." | |||
|
582 | printf " Additional arguments or flags for services command\n" | |||
|
583 | echo | |||
|
584 | ||||
|
585 | fi | |||
|
586 | } | |||
|
587 | ||||
|
588 | # :command.usage | |||
|
589 | rccontrol_stack_all_usage() { | |||
|
590 | if [[ -n $long_usage ]]; then | |||
|
591 | printf "rccontrol stack all - run all stacks\n" | |||
|
592 | echo | |||
|
593 | ||||
|
594 | else | |||
|
595 | printf "rccontrol stack all - run all stacks\n" | |||
|
596 | echo | |||
|
597 | ||||
|
598 | fi | |||
|
599 | ||||
|
600 | printf "Usage:\n" | |||
|
601 | printf " rccontrol stack all [SERVICES PARAMS...]\n" | |||
|
602 | printf " rccontrol stack all --help | -h\n" | |||
|
603 | echo | |||
|
604 | ||||
|
605 | # :command.long_usage | |||
|
606 | if [[ -n $long_usage ]]; then | |||
|
607 | printf "Options:\n" | |||
|
608 | ||||
|
609 | # :command.usage_fixed_flags | |||
|
610 | echo " --help, -h" | |||
|
611 | printf " Show this help\n" | |||
|
612 | echo | |||
|
613 | ||||
|
614 | # :command.usage_args | |||
|
615 | printf "Arguments:\n" | |||
|
616 | ||||
|
617 | echo " SERVICES PARAMS..." | |||
|
618 | printf " Additional arguments or flags for services command\n" | |||
446 | echo |
|
619 | echo | |
447 |
|
620 | |||
448 | fi |
|
621 | fi | |
@@ -451,11 +624,11 b' rccontrol_stack_usage() {' | |||||
451 | # :command.usage |
|
624 | # :command.usage | |
452 | rccontrol_stack_status_usage() { |
|
625 | rccontrol_stack_status_usage() { | |
453 | if [[ -n $long_usage ]]; then |
|
626 | if [[ -n $long_usage ]]; then | |
454 |
printf "rccontrol stack-status - |
|
627 | printf "rccontrol stack-status - Show stack status\n" | |
455 | echo |
|
628 | echo | |
456 |
|
629 | |||
457 | else |
|
630 | else | |
458 |
printf "rccontrol stack-status - |
|
631 | printf "rccontrol stack-status - Show stack status\n" | |
459 | echo |
|
632 | echo | |
460 |
|
633 | |||
461 | fi |
|
634 | fi | |
@@ -510,20 +683,56 b' rccontrol_stack_upgrade_usage() {' | |||||
510 | } |
|
683 | } | |
511 |
|
684 | |||
512 | # :command.usage |
|
685 | # :command.usage | |
|
686 | rccontrol_cli_usage() { | |||
|
687 | if [[ -n $long_usage ]]; then | |||
|
688 | printf "rccontrol cli - run various CLI tools\n" | |||
|
689 | echo | |||
|
690 | ||||
|
691 | else | |||
|
692 | printf "rccontrol cli - run various CLI tools\n" | |||
|
693 | echo | |||
|
694 | ||||
|
695 | fi | |||
|
696 | ||||
|
697 | printf "Usage:\n" | |||
|
698 | printf " rccontrol cli COMMAND\n" | |||
|
699 | printf " rccontrol cli [COMMAND] --help | -h\n" | |||
|
700 | echo | |||
|
701 | # :command.usage_commands | |||
|
702 | printf "Commands:\n" | |||
|
703 | echo " redis CLI for Redis" | |||
|
704 | echo " db CLI with Database connection" | |||
|
705 | echo " db-upgrade CLI to run db upgrade" | |||
|
706 | echo " storage CLI for repository storage" | |||
|
707 | echo | |||
|
708 | ||||
|
709 | # :command.long_usage | |||
|
710 | if [[ -n $long_usage ]]; then | |||
|
711 | printf "Options:\n" | |||
|
712 | ||||
|
713 | # :command.usage_fixed_flags | |||
|
714 | echo " --help, -h" | |||
|
715 | printf " Show this help\n" | |||
|
716 | echo | |||
|
717 | ||||
|
718 | fi | |||
|
719 | } | |||
|
720 | ||||
|
721 | # :command.usage | |||
513 | rccontrol_cli_redis_usage() { |
|
722 | rccontrol_cli_redis_usage() { | |
514 | if [[ -n $long_usage ]]; then |
|
723 | if [[ -n $long_usage ]]; then | |
515 |
printf "rccontrol cli |
|
724 | printf "rccontrol cli redis - CLI for Redis\n" | |
516 | echo |
|
725 | echo | |
517 |
|
726 | |||
518 | else |
|
727 | else | |
519 |
printf "rccontrol cli |
|
728 | printf "rccontrol cli redis - CLI for Redis\n" | |
520 | echo |
|
729 | echo | |
521 |
|
730 | |||
522 | fi |
|
731 | fi | |
523 |
|
732 | |||
524 | printf "Usage:\n" |
|
733 | printf "Usage:\n" | |
525 |
printf " rccontrol cli |
|
734 | printf " rccontrol cli redis\n" | |
526 |
printf " rccontrol cli |
|
735 | printf " rccontrol cli redis --help | -h\n" | |
527 | echo |
|
736 | echo | |
528 |
|
737 | |||
529 | # :command.long_usage |
|
738 | # :command.long_usage | |
@@ -541,18 +750,18 b' rccontrol_cli_redis_usage() {' | |||||
541 | # :command.usage |
|
750 | # :command.usage | |
542 | rccontrol_cli_db_usage() { |
|
751 | rccontrol_cli_db_usage() { | |
543 | if [[ -n $long_usage ]]; then |
|
752 | if [[ -n $long_usage ]]; then | |
544 |
printf "rccontrol cli |
|
753 | printf "rccontrol cli db - CLI with Database connection\n" | |
545 | echo |
|
754 | echo | |
546 |
|
755 | |||
547 | else |
|
756 | else | |
548 |
printf "rccontrol cli |
|
757 | printf "rccontrol cli db - CLI with Database connection\n" | |
549 | echo |
|
758 | echo | |
550 |
|
759 | |||
551 | fi |
|
760 | fi | |
552 |
|
761 | |||
553 | printf "Usage:\n" |
|
762 | printf "Usage:\n" | |
554 |
printf " rccontrol cli |
|
763 | printf " rccontrol cli db\n" | |
555 |
printf " rccontrol cli |
|
764 | printf " rccontrol cli db --help | -h\n" | |
556 | echo |
|
765 | echo | |
557 |
|
766 | |||
558 | # :command.long_usage |
|
767 | # :command.long_usage | |
@@ -570,18 +779,47 b' rccontrol_cli_db_usage() {' | |||||
570 | # :command.usage |
|
779 | # :command.usage | |
571 | rccontrol_cli_db_upgrade_usage() { |
|
780 | rccontrol_cli_db_upgrade_usage() { | |
572 | if [[ -n $long_usage ]]; then |
|
781 | if [[ -n $long_usage ]]; then | |
573 |
printf "rccontrol cli |
|
782 | printf "rccontrol cli db-upgrade - CLI to run db upgrade\n" | |
|
783 | echo | |||
|
784 | ||||
|
785 | else | |||
|
786 | printf "rccontrol cli db-upgrade - CLI to run db upgrade\n" | |||
|
787 | echo | |||
|
788 | ||||
|
789 | fi | |||
|
790 | ||||
|
791 | printf "Usage:\n" | |||
|
792 | printf " rccontrol cli db-upgrade\n" | |||
|
793 | printf " rccontrol cli db-upgrade --help | -h\n" | |||
|
794 | echo | |||
|
795 | ||||
|
796 | # :command.long_usage | |||
|
797 | if [[ -n $long_usage ]]; then | |||
|
798 | printf "Options:\n" | |||
|
799 | ||||
|
800 | # :command.usage_fixed_flags | |||
|
801 | echo " --help, -h" | |||
|
802 | printf " Show this help\n" | |||
|
803 | echo | |||
|
804 | ||||
|
805 | fi | |||
|
806 | } | |||
|
807 | ||||
|
808 | # :command.usage | |||
|
809 | rccontrol_cli_storage_usage() { | |||
|
810 | if [[ -n $long_usage ]]; then | |||
|
811 | printf "rccontrol cli storage - CLI for repository storage\n" | |||
574 | echo |
|
812 | echo | |
575 |
|
813 | |||
576 | else |
|
814 | else | |
577 |
printf "rccontrol cli |
|
815 | printf "rccontrol cli storage - CLI for repository storage\n" | |
578 | echo |
|
816 | echo | |
579 |
|
817 | |||
580 | fi |
|
818 | fi | |
581 |
|
819 | |||
582 | printf "Usage:\n" |
|
820 | printf "Usage:\n" | |
583 |
printf " rccontrol cli |
|
821 | printf " rccontrol cli storage\n" | |
584 |
printf " rccontrol cli |
|
822 | printf " rccontrol cli storage --help | -h\n" | |
585 | echo |
|
823 | echo | |
586 |
|
824 | |||
587 | # :command.long_usage |
|
825 | # :command.long_usage | |
@@ -733,6 +971,23 b' inspect_args() {' | |||||
733 | } |
|
971 | } | |
734 |
|
972 | |||
735 | # :command.user_lib |
|
973 | # :command.user_lib | |
|
974 | # src/lib/check_bootstrap.sh | |||
|
975 | ||||
|
976 | check_bootstrap() { | |||
|
977 | # Avoid destroying bootstrapping by simple start/stop | |||
|
978 | for stage in $BOOTSTRAP_STAGES; do | |||
|
979 | ||||
|
980 | stage_name=$(echo $stage | cut -d ":" -f 1) | |||
|
981 | stage_func=$(echo $stage | cut -d ":" -f 2) | |||
|
982 | if ! config_has_key $stage_name ; then | |||
|
983 | echo "$(yellow WARNING:) bootstrap key $stage_name not found in config file $CONFIG_FILE!" | |||
|
984 | echo "$(yellow NOTICE:) Please run ./rccontrol bootstrap first" | |||
|
985 | exit | |||
|
986 | fi | |||
|
987 | done | |||
|
988 | ||||
|
989 | } | |||
|
990 | ||||
736 | # src/lib/colors.sh |
|
991 | # src/lib/colors.sh | |
737 | print_in_color() { |
|
992 | print_in_color() { | |
738 | local color="$1" |
|
993 | local color="$1" | |
@@ -861,22 +1116,6 b' config_has_key() {' | |||||
861 | [[ $(config_get "$1") ]] |
|
1116 | [[ $(config_get "$1") ]] | |
862 | } |
|
1117 | } | |
863 |
|
1118 | |||
864 | # src/lib/sample_function.sh |
|
|||
865 |
|
||||
866 | docker_ping_host() { |
|
|||
867 | PING_HOST="$1" |
|
|||
868 | docker run --network rhodecode_network --rm alpine ping "$PING_HOST" |
|
|||
869 | } |
|
|||
870 |
|
||||
871 | check_bootstrap() { |
|
|||
872 | # Avoid destroying bootstrapping by simple start/stop |
|
|||
873 | if [[ ! -e $BOOTSTRAP_FILE ]]; then |
|
|||
874 | echo "$(yellow WARNING:) initial bootstrap file $BOOTSTRAP_FILE not found !" |
|
|||
875 | echo "$(yellow NOTICE:) Please run ./rccontrol bootstrap first" |
|
|||
876 | exit |
|
|||
877 | fi |
|
|||
878 | } |
|
|||
879 |
|
||||
880 | # src/lib/send_completions.sh |
|
1119 | # src/lib/send_completions.sh | |
881 | send_completions() { |
|
1120 | send_completions() { | |
882 | echo $'# rccontrol3 completion -*- shell-script -*-' |
|
1121 | echo $'# rccontrol3 completion -*- shell-script -*-' | |
@@ -985,7 +1224,6 b' rccontrol_bootstrap_command() {' | |||||
985 | force=${args[--force]} |
|
1224 | force=${args[--force]} | |
986 |
|
1225 | |||
987 | check_bash_version() { |
|
1226 | check_bash_version() { | |
988 |
|
||||
989 | if [ ! "${BASH_VERSINFO:-0}" -ge 4 ]; then |
|
1227 | if [ ! "${BASH_VERSINFO:-0}" -ge 4 ]; then | |
990 | echo "$(red Bash version 4 or greater is required, please update your bash version!)" |
|
1228 | echo "$(red Bash version 4 or greater is required, please update your bash version!)" | |
991 | exit |
|
1229 | exit | |
@@ -996,7 +1234,7 b' rccontrol_bootstrap_command() {' | |||||
996 | (which docker || which docker.io) &>/dev/null |
|
1234 | (which docker || which docker.io) &>/dev/null | |
997 | } |
|
1235 | } | |
998 |
|
1236 | |||
999 | check_and_install_docker() { |
|
1237 | bootstrap_docker_install() { | |
1000 | failMsg="Failed to find docker on your PATH" |
|
1238 | failMsg="Failed to find docker on your PATH" | |
1001 |
|
1239 | |||
1002 | if ! check_docker; then |
|
1240 | if ! check_docker; then | |
@@ -1012,12 +1250,17 b' rccontrol_bootstrap_command() {' | |||||
1012 | fi |
|
1250 | fi | |
1013 | } |
|
1251 | } | |
1014 |
|
1252 | |||
1015 | docker_bootstrap() { |
|
1253 | bootstrap_docker_commons() { | |
1016 | check_and_install_docker |
|
1254 | ||
1017 | echo 'Docker: Running bootstrap.' |
|
1255 | echo 'Docker: Running bootstrap.' | |
1018 |
|
1256 | |||
1019 |
echo "Docker: creating |
|
1257 | echo "Docker: creating volume 'rc_datavolume'" | |
1020 | docker volume create --name=rc_datavolume |
|
1258 | docker volume create --label keep=1 --name=rc_datavolume | |
|
1259 | echo "Docker: done" | |||
|
1260 | echo "" | |||
|
1261 | ||||
|
1262 | echo "Docker: creating volume 'rc_reposvolume'" | |||
|
1263 | docker volume create --label keep=1 --name=rc_reposvolume | |||
1021 | echo "Docker: done" |
|
1264 | echo "Docker: done" | |
1022 | echo "" |
|
1265 | echo "" | |
1023 |
|
1266 | |||
@@ -1035,16 +1278,89 b' rccontrol_bootstrap_command() {' | |||||
1035 | fi |
|
1278 | fi | |
1036 | } |
|
1279 | } | |
1037 |
|
1280 | |||
1038 |
|
|
1281 | bootstrap_config() { | |
|
1282 | shared_key=$(echo $RANDOM | md5sum | head -c 32) | |||
1039 |
|
1283 | |||
1040 | SOURCE_DIR=$PWD |
|
1284 | if [[ ! -f "$CONFIG_FILE" ]]; then | |
1041 | RHODECODE_DOCKER_HASH='master' |
|
1285 | echo "init config at: $CONFIG_FILE" | |
|
1286 | config_init | |||
|
1287 | else | |||
|
1288 | echo "re-using config at: $CONFIG_FILE" | |||
|
1289 | fi | |||
1042 |
|
1290 | |||
1043 | AUTH_TOKEN=${args[--auth-token]} |
|
1291 | if ! config_has_key "rc_encrypted_secret" ; then | |
1044 | SERVER_URL=${args[--server-url]} |
|
1292 | config_set "rc_encrypted_secret" $shared_key | |
|
1293 | fi | |||
|
1294 | ||||
|
1295 | if ! config_has_key "rc_db_url" ; then | |||
|
1296 | key=$(echo $RANDOM | md5sum | head -c 32) | |||
|
1297 | config_set "rc_db_url" "postgresql://$DB_USER:$key@database/$DB_NAME" | |||
|
1298 | fi | |||
|
1299 | ||||
|
1300 | if ! config_has_key "rc_license_token" ; then | |||
|
1301 | config_set "rc_license_token" abra-cada-bra1-rce4 | |||
|
1302 | fi | |||
|
1303 | ||||
|
1304 | if ! config_has_key "rc_base_url" ; then | |||
|
1305 | config_set "rc_base_url" http://docker-dev | |||
|
1306 | fi | |||
|
1307 | ||||
|
1308 | if ! config_has_key "rc_log_formatter" ; then | |||
|
1309 | # json is another option | |||
|
1310 | config_set "rc_log_formatter" generic | |||
|
1311 | fi | |||
|
1312 | ||||
|
1313 | if ! config_has_key "rc_use_celery" ; then | |||
|
1314 | config_set "rc_use_celery" true | |||
|
1315 | fi | |||
|
1316 | ||||
|
1317 | if ! config_has_key "channelstream_secret" ; then | |||
|
1318 | config_set "channelstream_secret" $shared_key | |||
|
1319 | fi | |||
|
1320 | ||||
|
1321 | if ! config_has_key "channelstream_admin_secret" ; then | |||
|
1322 | config_set "channelstream_admin_secret" $shared_key | |||
|
1323 | fi | |||
|
1324 | ||||
|
1325 | if ! config_has_key "channelstream_allow_posting_from" ; then | |||
|
1326 | config_set "channelstream_allow_posting_from" 0.0.0.0 | |||
|
1327 | fi | |||
|
1328 | ||||
|
1329 | if ! config_has_key "rc_channelstream_ws_url" ; then | |||
|
1330 | config_set "rc_channelstream_ws_url" ws:/docker-dev/_channelstream | |||
|
1331 | fi | |||
|
1332 | ||||
|
1333 | mkdir -p $PWD/.custom | |||
|
1334 | BOOTSTRAP_RUNTIME_ENV=$PWD/.custom/.runtime.env | |||
|
1335 | if [[ ! -f "$BOOTSTRAP_RUNTIME_ENV" ]]; then | |||
|
1336 | echo "init runtime env config at: $BOOTSTRAP_RUNTIME_ENV" | |||
|
1337 | touch BOOTSTRAP_RUNTIME_ENV | |||
|
1338 | ||||
|
1339 | #ENV_EXPAND="" | |||
|
1340 | for k in $(config_keys); do | |||
|
1341 | k_upper=${k^^} | |||
|
1342 | echo "$k_upper='$(config_get "$k")'" >> $BOOTSTRAP_RUNTIME_ENV | |||
|
1343 | done | |||
|
1344 | ||||
|
1345 | fi | |||
|
1346 | } | |||
|
1347 | ||||
|
1348 | bootstrap_definitions() { | |||
|
1349 | ||||
|
1350 | SOURCE_DIR=$PWD | |||
|
1351 | RHODECODE_DOCKER_HASH='master' | |||
|
1352 | ||||
|
1353 | AUTH_TOKEN=${args[--auth-token]} | |||
|
1354 | SERVER_URL=${args[--server-url]} | |||
1045 |
|
1355 | |||
1046 | DEFINITIONS_EXIST="" |
|
1356 | DEFINITIONS_EXIST="" | |
1047 | CHECK_FILES="rccontrol .env docker-compose-services.yaml docker-compose-apps.yaml" |
|
1357 | CHECK_FILES="\ | |
|
1358 | .env \ | |||
|
1359 | docker-compose-services.yaml \ | |||
|
1360 | docker-compose-apps.yaml \ | |||
|
1361 | docker-compose-metrics.yaml \ | |||
|
1362 | docker-compose-router.yaml \ | |||
|
1363 | " | |||
1048 | for check_file in $CHECK_FILES; do |
|
1364 | for check_file in $CHECK_FILES; do | |
1049 | if [[ -f "$check_file" ]]; then |
|
1365 | if [[ -f "$check_file" ]]; then | |
1050 | DEFINITIONS_EXIST="1" |
|
1366 | DEFINITIONS_EXIST="1" | |
@@ -1068,8 +1384,6 b' rccontrol_bootstrap_command() {' | |||||
1068 | done |
|
1384 | done | |
1069 | fi |
|
1385 | fi | |
1070 |
|
1386 | |||
1071 | exit |
|
|||
1072 |
|
||||
1073 | # download sources |
|
1387 | # download sources | |
1074 | echo "Files: download rhodecode docker definitions from $SERVER_URL" |
|
1388 | echo "Files: download rhodecode docker definitions from $SERVER_URL" | |
1075 | echo "" |
|
1389 | echo "" | |
@@ -1094,83 +1408,56 b' rccontrol_bootstrap_command() {' | |||||
1094 | echo "$(green_bold DONE: docker definitions extracted to $SOURCE_DIR)" |
|
1408 | echo "$(green_bold DONE: docker definitions extracted to $SOURCE_DIR)" | |
1095 | } |
|
1409 | } | |
1096 |
|
1410 | |||
1097 |
|
|
1411 | bootstrap_overrides() { | |
1098 |
|
1412 | templates=$(find $PWD/templates/*.yaml -printf "%f\n") | ||
1099 | if [[ ! -f "$CONFIG_FILE" ]]; then |
|
|||
1100 | echo "init config at: $CONFIG_FILE" |
|
|||
1101 | config_init |
|
|||
1102 | else |
|
|||
1103 | echo "re-using config at: $CONFIG_FILE" |
|
|||
1104 | fi |
|
|||
1105 |
|
||||
1106 | if ! config_has_key "rc_encrypted_secret" ; then |
|
|||
1107 | key=$(echo $RANDOM | md5sum | head -c 32) |
|
|||
1108 | config_set "rc_encrypted_secret" $key |
|
|||
1109 | fi |
|
|||
1110 |
|
||||
1111 | if ! config_has_key "rc_db_url" ; then |
|
|||
1112 | key=$(echo $RANDOM | md5sum | head -c 32) |
|
|||
1113 | config_set "rc_db_url" "postgresql://$DB_USER:$key@database/$DB_NAME" |
|
|||
1114 | fi |
|
|||
1115 |
|
||||
1116 | if ! config_has_key "rc_license_token" ; then |
|
|||
1117 | config_set "rc_license_token" abra-cada-bra1-rce4 |
|
|||
1118 | fi |
|
|||
1119 |
|
||||
1120 | if ! config_has_key "rc_base_url" ; then |
|
|||
1121 | config_set "rc_base_url" http://docker-dev |
|
|||
1122 | fi |
|
|||
1123 |
|
||||
1124 | if ! config_has_key "rc_log_formatter" ; then |
|
|||
1125 | # json is another option |
|
|||
1126 | config_set "rc_log_formatter" generic |
|
|||
1127 | fi |
|
|||
1128 |
|
||||
1129 | if ! config_has_key "rc_use_celery" ; then |
|
|||
1130 | config_set "rc_use_celery" true |
|
|||
1131 | fi |
|
|||
1132 |
|
||||
1133 | BOOTSTRAP_RUNTIME_ENV=$PWD/.custom/.runtime.env |
|
|||
1134 | if [[ ! -f "$BOOTSTRAP_RUNTIME_ENV" ]]; then |
|
|||
1135 | echo "init runtime env config at: $BOOTSTRAP_RUNTIME_ENV" |
|
|||
1136 | touch BOOTSTRAP_RUNTIME_ENV |
|
|||
1137 |
|
||||
1138 | #ENV_EXPAND="" |
|
|||
1139 | for k in $(config_keys); do |
|
|||
1140 | k_upper=${k^^} |
|
|||
1141 | echo "$k_upper='$(config_get "$k")'" >> $BOOTSTRAP_RUNTIME_ENV |
|
|||
1142 | done |
|
|||
1143 |
|
1413 | |||
1144 | fi |
|
1414 | target_dir=$PWD/.custom/ | |
|
1415 | for o_file in $templates; do | |||
|
1416 | target_file=$target_dir/$o_file | |||
|
1417 | if [[ ! -f "$target_file" ]]; then | |||
|
1418 | echo "copy override file $o_file" | |||
|
1419 | cp -v $PWD/templates/$o_file $target_file | |||
|
1420 | else | |||
|
1421 | echo "file $target_file existing, skipping..." | |||
|
1422 | fi | |||
|
1423 | done | |||
|
1424 | echo "$(green_bold DONE: overrides extracted to $target_dir)" | |||
1145 | } |
|
1425 | } | |
1146 |
|
1426 | |||
1147 | cur_date=$(date '+%Y-%m-%d %H:%M:%S') |
|
1427 | cur_date=$(date '+%Y-%m-%d %H:%M:%S') | |
1148 |
|
1428 | |||
1149 | check_bash_version |
|
1429 | check_bash_version | |
1150 |
|
1430 | |||
1151 | if [[ ! -e $BOOTSTRAP_FILE ]]; then |
|
1431 | # Init the config ! | |
1152 | echo "initial bootstrap file $BOOTSTRAP_FILE not found !" |
|
1432 | if [[ ! -f "$CONFIG_FILE" ]]; then | |
1153 |
|
1433 | echo "config: init new config at: $CONFIG_FILE" | ||
1154 | docker_bootstrap |
|
1434 | config_init | |
1155 | definitions_bootstrap |
|
|||
1156 | config_bootstrap |
|
|||
1157 |
|
||||
1158 | echo "$cur_date" > "$BOOTSTRAP_FILE" |
|
|||
1159 |
|
||||
1160 | else |
|
1435 | else | |
1161 | if [ $force ]; then |
|
1436 | echo "config: re-using present config at: $CONFIG_FILE" | |
|
1437 | fi | |||
1162 |
|
1438 | |||
1163 | docker_bootstrap $force |
|
1439 | for stage in $BOOTSTRAP_STAGES; do | |
1164 | definitions_bootstrap $force ## TODO: remove old |
|
|||
1165 | config_bootstrap $force |
|
|||
1166 |
|
1440 | |||
1167 | echo "$cur_date" > "$BOOTSTRAP_FILE" |
|
1441 | stage_name=$(echo $stage | cut -d ":" -f 1) | |
|
1442 | stage_func=$(echo $stage | cut -d ":" -f 2) | |||
1168 |
|
1443 | |||
1169 | exit |
|
1444 | if ! config_has_key $stage_name ; then | |
1170 | fi |
|
1445 | echo "$(green \* bootstrap: \'$stage_name\' stage not found\; running now... )" | |
|
1446 | $stage_func | |||
|
1447 | config_set "$stage_name" $cur_date | |||
|
1448 | else | |||
|
1449 | if [ $force ]; then | |||
|
1450 | echo "$(green \* bootstrap: \'$stage_name\' is present!\; FORCE running now... )" | |||
|
1451 | $stage_func $force | |||
|
1452 | config_set "$stage_name" $cur_date | |||
|
1453 | else | |||
|
1454 | echo "$(yellow \* bootstrap: \'$stage_name\' already present, use --force to run it again)" | |||
|
1455 | fi | |||
|
1456 | fi | |||
1171 |
|
1457 | |||
1172 | echo "bootstrap file $BOOTSTRAP_FILE was found add --force to force bootstrap" |
|
1458 | done | |
1173 | fi |
|
1459 | ||
|
1460 | exit | |||
1174 |
|
1461 | |||
1175 | get_started |
|
1462 | get_started | |
1176 | } |
|
1463 | } | |
@@ -1263,7 +1550,7 b' rccontrol_get_build_source_command() {' | |||||
1263 |
|
1550 | |||
1264 | AUTH_TOKEN=${args[--auth-token]} |
|
1551 | AUTH_TOKEN=${args[--auth-token]} | |
1265 | SERVER_URL=${args[--server-url]} |
|
1552 | SERVER_URL=${args[--server-url]} | |
1266 | revision=${args[revision]} |
|
1553 | revision=${args[--revision]} | |
1267 |
|
1554 | |||
1268 | SOURCE_DIR=$PWD/.source |
|
1555 | SOURCE_DIR=$PWD/.source | |
1269 |
|
1556 | |||
@@ -1279,11 +1566,17 b' rccontrol_get_build_source_command() {' | |||||
1279 | #TODO: fix just CE build... |
|
1566 | #TODO: fix just CE build... | |
1280 | curl --header "X-Rc-Auth-Token: $AUTH_TOKEN" -L $SERVER_URL/rhodecode-enterprise-ee/archive/$RHODECODE_EE_HASH.tgz?with_hash=0 | tar -xz -C $SOURCE_DIR |
|
1567 | curl --header "X-Rc-Auth-Token: $AUTH_TOKEN" -L $SERVER_URL/rhodecode-enterprise-ee/archive/$RHODECODE_EE_HASH.tgz?with_hash=0 | tar -xz -C $SOURCE_DIR | |
1281 |
|
1568 | |||
1282 | rm -rf $SOURCE_DIR/rhodecode-vcsserver && mv $SOURCE_DIR/*rhodecode-vcsserver-plain $SOURCE_DIR/rhodecode-vcsserver |
|
1569 | rm -rf $SOURCE_DIR/rhodecode-vcsserver && \ | |
1283 |
|
|
1570 | mv $SOURCE_DIR/*rhodecode-vcsserver-plain $SOURCE_DIR/rhodecode-vcsserver | |
1284 | rm -rf $SOURCE_DIR/rhodecode-enterprise-ee && cp -r $SOURCE_DIR/*rhodecode-enterprise-ee-plain $SOURCE_DIR/rhodecode-enterprise-ee |
|
1571 | ||
|
1572 | rm -rf $SOURCE_DIR/rhodecode-enterprise-ce && \ | |||
|
1573 | mv $SOURCE_DIR/*rhodecode-enterprise-ce-plain $SOURCE_DIR/rhodecode-enterprise-ce | |||
|
1574 | ||||
|
1575 | rm -rf $SOURCE_DIR/rhodecode-enterprise-ee && \ | |||
|
1576 | mv $SOURCE_DIR/*rhodecode-enterprise-ee-plain $SOURCE_DIR/rhodecode-enterprise-ee | |||
1285 |
|
1577 | |||
1286 | echo "downloading sources done to $SOURCE_DIR" |
|
1578 | echo "downloading sources done to $SOURCE_DIR" | |
|
1579 | ls -l $SOURCE_DIR | |||
1287 |
|
1580 | |||
1288 | } |
|
1581 | } | |
1289 |
|
1582 | |||
@@ -1301,12 +1594,11 b' rccontrol_build_source_command() {' | |||||
1301 | } |
|
1594 | } | |
1302 |
|
1595 | |||
1303 | # :command.function |
|
1596 | # :command.function | |
1304 | rccontrol_stack_command() { |
|
1597 | rccontrol_stack_router_command() { | |
1305 | # src/stack_command.sh |
|
1598 | # src/stack_router_command.sh | |
1306 | check_bootstrap |
|
1599 | check_bootstrap | |
1307 |
|
1600 | |||
1308 | DEBUG=${args[--debug]} |
|
1601 | DEBUG=${args[--debug]} | |
1309 | service_name=${args[name]} |
|
|||
1310 |
|
1602 | |||
1311 | if [[ ! -f $RC_STACK_ROUTER_EXT ]]; then |
|
1603 | if [[ ! -f $RC_STACK_ROUTER_EXT ]]; then | |
1312 | RC_STACK_ROUTER_EXT="" |
|
1604 | RC_STACK_ROUTER_EXT="" | |
@@ -1322,6 +1614,55 b' rccontrol_stack_command() {' | |||||
1322 | -f docker-compose-base.yaml \ |
|
1614 | -f docker-compose-base.yaml \ | |
1323 | -f docker-compose-router.yaml $RC_STACK_ROUTER_EXT" |
|
1615 | -f docker-compose-router.yaml $RC_STACK_ROUTER_EXT" | |
1324 |
|
1616 | |||
|
1617 | if [[ $DEBUG ]]; then | |||
|
1618 | echo "---" | |||
|
1619 | echo "stacks docker: $RC_STACK_ROUTER_EXT_LCL" | |||
|
1620 | echo "running command: ${CMD_ROUTER}" | |||
|
1621 | echo "ARGS: ${other_args[*]}" | |||
|
1622 | echo "---" | |||
|
1623 | fi | |||
|
1624 | eval "${CMD_ROUTER} ${other_args[*]}" | |||
|
1625 | ||||
|
1626 | } | |||
|
1627 | ||||
|
1628 | # :command.function | |||
|
1629 | rccontrol_stack_metrics_command() { | |||
|
1630 | # src/stack_metrics_command.sh | |||
|
1631 | check_bootstrap | |||
|
1632 | ||||
|
1633 | DEBUG=${args[--debug]} | |||
|
1634 | ||||
|
1635 | if [[ ! -f $RC_STACK_METRICS_EXT ]]; then | |||
|
1636 | RC_STACK_METRICS_EXT_LCL="" | |||
|
1637 | else | |||
|
1638 | RC_STACK_METRICS_EXT_LCL="-f $RC_STACK_METRICS_EXT" | |||
|
1639 | fi | |||
|
1640 | ||||
|
1641 | CMD_METRICS="\ | |||
|
1642 | docker compose \ | |||
|
1643 | --env-file $ENV_FILE \ | |||
|
1644 | $ENV_EXPAND \ | |||
|
1645 | -p rc_cluster_metrics \ | |||
|
1646 | -f docker-compose-base.yaml \ | |||
|
1647 | -f docker-compose-metrics.yaml $RC_STACK_METRICS_EXT_LCL" | |||
|
1648 | ||||
|
1649 | if [[ $DEBUG ]]; then | |||
|
1650 | echo "---" | |||
|
1651 | echo "stacks docker: $RC_STACK_METRICS_EXT_LCL" | |||
|
1652 | echo "running command: ${CMD_METRICS}" | |||
|
1653 | echo "ARGS: ${other_args[*]}" | |||
|
1654 | echo "---" | |||
|
1655 | fi | |||
|
1656 | eval "${CMD_METRICS} ${other_args[*]}" | |||
|
1657 | } | |||
|
1658 | ||||
|
1659 | # :command.function | |||
|
1660 | rccontrol_stack_services_command() { | |||
|
1661 | # src/stack_services_command.sh | |||
|
1662 | check_bootstrap | |||
|
1663 | ||||
|
1664 | DEBUG=${args[--debug]} | |||
|
1665 | ||||
1325 | if [[ ! -f $RC_STACK_SERVICES_EXT ]]; then |
|
1666 | if [[ ! -f $RC_STACK_SERVICES_EXT ]]; then | |
1326 | RC_STACK_SERVICES_EXT_LCL="" |
|
1667 | RC_STACK_SERVICES_EXT_LCL="" | |
1327 | else |
|
1668 | else | |
@@ -1339,19 +1680,23 b' rccontrol_stack_command() {' | |||||
1339 | -f docker-compose-base.yaml \ |
|
1680 | -f docker-compose-base.yaml \ | |
1340 | -f docker-compose-services.yaml $RC_STACK_SERVICES_EXT_LCL" |
|
1681 | -f docker-compose-services.yaml $RC_STACK_SERVICES_EXT_LCL" | |
1341 |
|
1682 | |||
1342 | if [[ ! -f $RC_STACK_METRICS_EXT ]]; then |
|
1683 | if [[ $DEBUG ]]; then | |
1343 | RC_STACK_METRICS_EXT_LCL="" |
|
1684 | echo "---" | |
1344 | else |
|
1685 | echo "stacks docker: $RC_STACK_SERVICES_EXT_LCL" | |
1345 | RC_STACK_METRICS_EXT_LCL="-f $RC_STACK_METRICS_EXT" |
|
1686 | echo "running command: ${CMD_SERVICES}" | |
|
1687 | echo "ARGS: ${other_args[*]}" | |||
|
1688 | echo "---" | |||
1346 | fi |
|
1689 | fi | |
1347 |
|
1690 | |||
1348 | CMD_METRICS="\ |
|
1691 | eval "${CMD_SERVICES} ${other_args[*]}" | |
1349 | docker compose \ |
|
1692 | } | |
1350 | --env-file $ENV_FILE \ |
|
1693 | ||
1351 | $ENV_EXPAND \ |
|
1694 | # :command.function | |
1352 | -p rc_cluster_metrics \ |
|
1695 | rccontrol_stack_rhodecode_command() { | |
1353 | -f docker-compose-base.yaml \ |
|
1696 | # src/stack_rhodecode_command.sh | |
1354 | -f docker-compose-metrics.yaml $RC_STACK_METRICS_EXT_LCL" |
|
1697 | check_bootstrap | |
|
1698 | ||||
|
1699 | DEBUG=${args[--debug]} | |||
1355 |
|
1700 | |||
1356 | if [[ ! -f $RC_STACK_RHODECODE_EXT ]]; then |
|
1701 | if [[ ! -f $RC_STACK_RHODECODE_EXT ]]; then | |
1357 | RC_STACK_RHODECODE_EXT_LCL="" |
|
1702 | RC_STACK_RHODECODE_EXT_LCL="" | |
@@ -1376,54 +1721,29 b' rccontrol_stack_command() {' | |||||
1376 | -f docker-compose-apps.yaml \ |
|
1721 | -f docker-compose-apps.yaml \ | |
1377 | -f docker-compose-apps.source.yaml $RC_STACK_RHODECODE_EXT_LCL" |
|
1722 | -f docker-compose-apps.source.yaml $RC_STACK_RHODECODE_EXT_LCL" | |
1378 |
|
1723 | |||
1379 | case $service_name in |
|
1724 | if [[ $DEBUG ]]; then | |
1380 |
|
1725 | echo "---" | ||
1381 | services ) |
|
1726 | echo "stacks docker: $RC_STACK_RHODECODE_EXT_LCL" | |
1382 | if [[ $DEBUG ]]; then |
|
1727 | echo "running command: ${CMD_RHODECODE}" | |
1383 | echo "---" |
|
1728 | echo "ARGS: ${other_args[*]}" | |
1384 | echo "stacks docker: $RC_STACK_SERVICES_EXT_LCL" |
|
1729 | echo "---" | |
1385 | echo "running command: ${CMD_SERVICES}" |
|
1730 | fi | |
1386 | echo "ARGS: ${other_args[*]}" |
|
1731 | eval "${CMD_RHODECODE} ${other_args[*]}" | |
1387 | echo "---" |
|
1732 | ||
1388 | fi |
|
1733 | } | |
1389 |
|
1734 | |||
1390 | eval "${CMD_SERVICES} ${other_args[*]}" |
|
1735 | # :command.function | |
1391 | exit |
|
1736 | rccontrol_stack_all_command() { | |
1392 | ;; |
|
1737 | # src/stack_all_command.sh | |
1393 | router ) |
|
1738 | check_bootstrap | |
1394 | if [[ $DEBUG ]]; then |
|
1739 | ||
1395 | echo "---" |
|
1740 | DEBUG=${args[--debug]} | |
1396 | echo "stacks docker: $RC_STACK_ROUTER_EXT_LCL" |
|
1741 | ||
1397 | echo "running command: ${CMD_ROUTER}" |
|
1742 | stack_lst=$VALID_SERVICES | |
1398 | echo "ARGS: ${other_args[*]}" |
|
1743 | ||
1399 | echo "---" |
|
1744 | for stack in $stack_lst; do | |
1400 | fi |
|
1745 | ./rccontrol stack $stack ${other_args[*]} | |
1401 | eval "${CMD_ROUTER} ${other_args[*]}" |
|
1746 | done | |
1402 | exit |
|
|||
1403 | ;; |
|
|||
1404 | metrics ) |
|
|||
1405 | if [[ $DEBUG ]]; then |
|
|||
1406 | echo "---" |
|
|||
1407 | echo "stacks docker: $RC_STACK_METRICS_EXT_LCL" |
|
|||
1408 | echo "running command: ${CMD_METRICS}" |
|
|||
1409 | echo "ARGS: ${other_args[*]}" |
|
|||
1410 | echo "---" |
|
|||
1411 | fi |
|
|||
1412 | eval "${CMD_METRICS} ${other_args[*]}" |
|
|||
1413 | exit |
|
|||
1414 | ;; |
|
|||
1415 | rhodecode ) |
|
|||
1416 | if [[ $DEBUG ]]; then |
|
|||
1417 | echo "---" |
|
|||
1418 | echo "stacks docker: $RC_STACK_RHODECODE_EXT_LCL" |
|
|||
1419 | echo "running command: ${CMD_RHODECODE}" |
|
|||
1420 | echo "ARGS: ${other_args[*]}" |
|
|||
1421 | echo "---" |
|
|||
1422 | fi |
|
|||
1423 | eval "${CMD_RHODECODE} ${other_args[*]}" |
|
|||
1424 | exit |
|
|||
1425 | ;; |
|
|||
1426 | esac |
|
|||
1427 |
|
1747 | |||
1428 | } |
|
1748 | } | |
1429 |
|
1749 | |||
@@ -1552,6 +1872,52 b' rccontrol_cli_db_upgrade_command() {' | |||||
1552 | } |
|
1872 | } | |
1553 |
|
1873 | |||
1554 | # :command.function |
|
1874 | # :command.function | |
|
1875 | rccontrol_cli_storage_command() { | |||
|
1876 | # src/cli_storage_command.sh | |||
|
1877 | check_bootstrap | |||
|
1878 | ||||
|
1879 | DEBUG=${args[--debug]} | |||
|
1880 | ||||
|
1881 | source $ENV_FILE | |||
|
1882 | target_container=$RC_IMAGE_EE | |||
|
1883 | ||||
|
1884 | image_id=$(docker image ls $RC_IMAGE_EE -q) | |||
|
1885 | ||||
|
1886 | echo "Attaching storage from $target_container" | |||
|
1887 | ||||
|
1888 | if [[ $DEBUG ]]; then | |||
|
1889 | echo "image id: $image_id, based on $target_container filter" | |||
|
1890 | docker image ls | |||
|
1891 | echo "---" | |||
|
1892 | fi | |||
|
1893 | ||||
|
1894 | if [[ $DEBUG ]]; then | |||
|
1895 | echo "rc_datavolume inspection..." | |||
|
1896 | docker volume inspect rc_datavolume | |||
|
1897 | ||||
|
1898 | echo "rhodecode_repos inspection..." | |||
|
1899 | docker volume inspect rhodecode_repos | |||
|
1900 | fi | |||
|
1901 | ||||
|
1902 | # | |||
|
1903 | #if [[ $DEBUG ]]; then | |||
|
1904 | # echo "image id: $image_id, based on $target_container filter" | |||
|
1905 | # docker image ls | |||
|
1906 | # echo "---" | |||
|
1907 | #fi | |||
|
1908 | ||||
|
1909 | docker run --rm \ | |||
|
1910 | -it \ | |||
|
1911 | --volume $PWD/.custom/storage:/vol/backupvolume \ | |||
|
1912 | --volume rc_datavolume:/vol/datavolume \ | |||
|
1913 | --volume rc_reposvolume:/vol/repovolume \ | |||
|
1914 | --workdir="/vol" \ | |||
|
1915 | debian:jessie \ | |||
|
1916 | /bin/bash | |||
|
1917 | ||||
|
1918 | } | |||
|
1919 | ||||
|
1920 | # :command.function | |||
1555 | rccontrol__completions_command() { |
|
1921 | rccontrol__completions_command() { | |
1556 | # src/_completions_command.sh |
|
1922 | # src/_completions_command.sh | |
1557 | send_completions |
|
1923 | send_completions | |
@@ -1568,7 +1934,7 b' rccontrol_backup_db_command() {' | |||||
1568 | target_container=rc_cluster_services-database-1 |
|
1934 | target_container=rc_cluster_services-database-1 | |
1569 |
|
1935 | |||
1570 | docker_id=$(docker ps --filter name=$target_container -q) |
|
1936 | docker_id=$(docker ps --filter name=$target_container -q) | |
1571 |
backup_name=rc_db_dump-$(date +%Y-%m-%d). |
|
1937 | backup_name=rc_db_dump-$(date +%Y-%m-%d).sql.gz | |
1572 |
|
1938 | |||
1573 | echo "creating backup $backup_name" |
|
1939 | echo "creating backup $backup_name" | |
1574 |
|
1940 | |||
@@ -1597,9 +1963,12 b' rccontrol_backup_db_command() {' | |||||
1597 | # echo "$(red $MSG)" |
|
1963 | # echo "$(red $MSG)" | |
1598 | # exit |
|
1964 | # exit | |
1599 | #fi |
|
1965 | #fi | |
|
1966 | # docker exec -i your-db-container psql -U your-db-user -d your-db-name gunzip < your_dump.sql.gz | | |||
1600 |
|
1967 | |||
1601 | if [[ $DEBUG ]]; then |
|
1968 | if [[ $DEBUG ]]; then | |
1602 | echo "docker exec -e PGPASSWORD=$DB_PASSWORD $docker_id /bin/bash -c 'pg_dump --inserts -U $DB_USER -h 127.0.0.1 --dbname=$DB_NAME | gzip > /var/rc-data-dump/$backup_name'" |
|
1969 | echo "docker exec -e PGPASSWORD=$DB_PASSWORD $docker_id /bin/bash -c 'mkdir -p /var/rc-data-dump && pg_dump --inserts -U $DB_USER -h 127.0.0.1 --dbname=$DB_NAME | gzip > /var/rc-data-dump/$backup_name'" | |
|
1970 | echo "dump placed in /var/rc-data-dump/$backup_name" | |||
|
1971 | echo "run docker cp $docker_id:/var/rc-data-dump/$backup_name $PWD to copy the file into your host machine" | |||
1603 | fi |
|
1972 | fi | |
1604 |
|
1973 | |||
1605 | eval "docker exec -e PGPASSWORD=$DB_PASSWORD $docker_id /bin/bash -c 'pg_dump --inserts -U $DB_USER -h 127.0.0.1 --dbname=$DB_NAME | gzip > /var/rc-data-dump/$backup_name'" |
|
1974 | eval "docker exec -e PGPASSWORD=$DB_PASSWORD $docker_id /bin/bash -c 'pg_dump --inserts -U $DB_USER -h 127.0.0.1 --dbname=$DB_NAME | gzip > /var/rc-data-dump/$backup_name'" | |
@@ -1664,7 +2033,7 b' parse_requirements() {' | |||||
1664 | shift $# |
|
2033 | shift $# | |
1665 | ;; |
|
2034 | ;; | |
1666 |
|
2035 | |||
1667 |
bootstrap | in |
|
2036 | bootstrap | init ) | |
1668 | action="bootstrap" |
|
2037 | action="bootstrap" | |
1669 | shift |
|
2038 | shift | |
1670 | rccontrol_bootstrap_parse_requirements "$@" |
|
2039 | rccontrol_bootstrap_parse_requirements "$@" | |
@@ -1720,24 +2089,10 b' parse_requirements() {' | |||||
1720 | shift $# |
|
2089 | shift $# | |
1721 | ;; |
|
2090 | ;; | |
1722 |
|
2091 | |||
1723 |
cli |
|
2092 | cli ) | |
1724 |
action="cli |
|
2093 | action="cli" | |
1725 | shift |
|
|||
1726 | rccontrol_cli_redis_parse_requirements "$@" |
|
|||
1727 | shift $# |
|
|||
1728 | ;; |
|
|||
1729 |
|
||||
1730 | cli-db ) |
|
|||
1731 | action="cli-db" |
|
|||
1732 | shift |
|
|||
1733 | rccontrol_cli_db_parse_requirements "$@" |
|
|||
1734 | shift $# |
|
|||
1735 | ;; |
|
|||
1736 |
|
||||
1737 | cli-db-upgrade ) |
|
|||
1738 | action="cli-db-upgrade" |
|
|||
1739 | shift |
|
2094 | shift | |
1740 |
rccontrol_cli_ |
|
2095 | rccontrol_cli_parse_requirements "$@" | |
1741 | shift $# |
|
2096 | shift $# | |
1742 | ;; |
|
2097 | ;; | |
1743 |
|
2098 | |||
@@ -2158,6 +2513,21 b' rccontrol_get_build_source_parse_requirements() {' | |||||
2158 | key="$1" |
|
2513 | key="$1" | |
2159 | case "$key" in |
|
2514 | case "$key" in | |
2160 | # :flag.case |
|
2515 | # :flag.case | |
|
2516 | --revision ) | |||
|
2517 | ||||
|
2518 | # :flag.case_arg | |||
|
2519 | if [[ -n ${2+x} ]]; then | |||
|
2520 | ||||
|
2521 | args[--revision]="$2" | |||
|
2522 | shift | |||
|
2523 | shift | |||
|
2524 | else | |||
|
2525 | printf "%s\n" "--revision requires an argument: --revision REVISION" >&2 | |||
|
2526 | exit 1 | |||
|
2527 | fi | |||
|
2528 | ;; | |||
|
2529 | ||||
|
2530 | # :flag.case | |||
2161 | --auth-token ) |
|
2531 | --auth-token ) | |
2162 |
|
2532 | |||
2163 | # :flag.case_arg |
|
2533 | # :flag.case_arg | |
@@ -2195,27 +2565,16 b' rccontrol_get_build_source_parse_requirements() {' | |||||
2195 | * ) |
|
2565 | * ) | |
2196 | # :command.parse_requirements_case |
|
2566 | # :command.parse_requirements_case | |
2197 | # :command.parse_requirements_case_simple |
|
2567 | # :command.parse_requirements_case_simple | |
2198 | if [[ -z ${args[revision]+x} ]]; then |
|
2568 | printf "invalid argument: %s\n" "$key" >&2 | |
2199 |
|
2569 | exit 1 | ||
2200 | args[revision]=$1 |
|
|||
2201 | shift |
|
|||
2202 | else |
|
|||
2203 | printf "invalid argument: %s\n" "$key" >&2 |
|
|||
2204 | exit 1 |
|
|||
2205 | fi |
|
|||
2206 |
|
2570 | |||
2207 | ;; |
|
2571 | ;; | |
2208 |
|
2572 | |||
2209 | esac |
|
2573 | esac | |
2210 | done |
|
2574 | done | |
2211 |
|
2575 | |||
2212 | # :command.required_args_filter |
|
|||
2213 | if [[ -z ${args[revision]+x} ]]; then |
|
|||
2214 | printf "missing required argument: REVISION\nusage: rccontrol get-build-source REVISION [OPTIONS]\n" >&2 |
|
|||
2215 | exit 1 |
|
|||
2216 | fi |
|
|||
2217 |
|
||||
2218 | # :command.default_assignments |
|
2576 | # :command.default_assignments | |
|
2577 | [[ -n ${args[--revision]:-} ]] || args[--revision]="default" | |||
2219 | [[ -n ${args[--server-url]:-} ]] || args[--server-url]="https://code.rhodecode.com" |
|
2578 | [[ -n ${args[--server-url]:-} ]] || args[--server-url]="https://code.rhodecode.com" | |
2220 |
|
2579 | |||
2221 | } |
|
2580 | } | |
@@ -2288,46 +2647,270 b' rccontrol_stack_parse_requirements() {' | |||||
2288 | esac |
|
2647 | esac | |
2289 |
|
2648 | |||
2290 | # :command.command_filter |
|
2649 | # :command.command_filter | |
2291 | action="stack" |
|
2650 | action=${1:-} | |
2292 |
|
2651 | |||
2293 | # :command.parse_requirements_while |
|
2652 | case $action in | |
2294 | while [[ $# -gt 0 ]]; do |
|
2653 | -* ) | |
2295 | key="$1" |
|
2654 | ;; | |
2296 | case "$key" in |
|
|||
2297 |
|
2655 | |||
2298 | -?* ) |
|
2656 | router ) | |
2299 | other_args+=("$1") |
|
2657 | action="router" | |
2300 |
|
|
2658 | shift | |
|
2659 | rccontrol_stack_router_parse_requirements "$@" | |||
|
2660 | shift $# | |||
|
2661 | ;; | |||
|
2662 | ||||
|
2663 | metrics ) | |||
|
2664 | action="metrics" | |||
|
2665 | shift | |||
|
2666 | rccontrol_stack_metrics_parse_requirements "$@" | |||
|
2667 | shift $# | |||
|
2668 | ;; | |||
|
2669 | ||||
|
2670 | services ) | |||
|
2671 | action="services" | |||
|
2672 | shift | |||
|
2673 | rccontrol_stack_services_parse_requirements "$@" | |||
|
2674 | shift $# | |||
|
2675 | ;; | |||
|
2676 | ||||
|
2677 | rhodecode ) | |||
|
2678 | action="rhodecode" | |||
|
2679 | shift | |||
|
2680 | rccontrol_stack_rhodecode_parse_requirements "$@" | |||
|
2681 | shift $# | |||
|
2682 | ;; | |||
|
2683 | ||||
|
2684 | all ) | |||
|
2685 | action="all" | |||
|
2686 | shift | |||
|
2687 | rccontrol_stack_all_parse_requirements "$@" | |||
|
2688 | shift $# | |||
|
2689 | ;; | |||
|
2690 | ||||
|
2691 | # :command.command_fallback | |||
|
2692 | "" ) | |||
|
2693 | rccontrol_stack_usage >&2 | |||
|
2694 | exit 1 | |||
|
2695 | ;; | |||
|
2696 | ||||
|
2697 | * ) | |||
|
2698 | printf "invalid command: %s\n" "$action" >&2 | |||
|
2699 | exit 1 | |||
|
2700 | ;; | |||
|
2701 | ||||
|
2702 | esac | |||
|
2703 | ||||
|
2704 | # :command.parse_requirements_while | |||
|
2705 | while [[ $# -gt 0 ]]; do | |||
|
2706 | key="$1" | |||
|
2707 | case "$key" in | |||
|
2708 | ||||
|
2709 | -?* ) | |||
|
2710 | printf "invalid option: %s\n" "$key" >&2 | |||
|
2711 | exit 1 | |||
|
2712 | ;; | |||
|
2713 | ||||
|
2714 | * ) | |||
|
2715 | # :command.parse_requirements_case | |||
|
2716 | # :command.parse_requirements_case_simple | |||
|
2717 | printf "invalid argument: %s\n" "$key" >&2 | |||
|
2718 | exit 1 | |||
|
2719 | ||||
|
2720 | ;; | |||
|
2721 | ||||
|
2722 | esac | |||
|
2723 | done | |||
|
2724 | ||||
|
2725 | } | |||
|
2726 | ||||
|
2727 | # :command.parse_requirements | |||
|
2728 | rccontrol_stack_router_parse_requirements() { | |||
|
2729 | # :command.fixed_flags_filter | |||
|
2730 | case "${1:-}" in | |||
|
2731 | --help | -h ) | |||
|
2732 | long_usage=yes | |||
|
2733 | rccontrol_stack_router_usage | |||
|
2734 | exit | |||
|
2735 | ;; | |||
|
2736 | ||||
|
2737 | esac | |||
|
2738 | ||||
|
2739 | # :command.command_filter | |||
|
2740 | action="stack router" | |||
|
2741 | ||||
|
2742 | # :command.parse_requirements_while | |||
|
2743 | while [[ $# -gt 0 ]]; do | |||
|
2744 | key="$1" | |||
|
2745 | case "$key" in | |||
|
2746 | ||||
|
2747 | -?* ) | |||
|
2748 | other_args+=("$1") | |||
|
2749 | shift | |||
2301 | ;; |
|
2750 | ;; | |
2302 |
|
2751 | |||
2303 | * ) |
|
2752 | * ) | |
2304 | # :command.parse_requirements_case |
|
2753 | # :command.parse_requirements_case | |
2305 | # :command.parse_requirements_case_catch_all |
|
2754 | # :command.parse_requirements_case_catch_all | |
2306 | if [[ -z ${args[name]+x} ]]; then |
|
2755 | other_args+=("$1") | |
|
2756 | shift | |||
2307 |
|
2757 | |||
2308 | args[name]=$1 |
|
2758 | ;; | |
2309 | shift |
|
2759 | ||
2310 |
|
|
2760 | esac | |
2311 | other_args+=("$1") |
|
2761 | done | |
2312 | shift |
|
2762 | ||
2313 | fi |
|
2763 | } | |
|
2764 | ||||
|
2765 | # :command.parse_requirements | |||
|
2766 | rccontrol_stack_metrics_parse_requirements() { | |||
|
2767 | # :command.fixed_flags_filter | |||
|
2768 | case "${1:-}" in | |||
|
2769 | --help | -h ) | |||
|
2770 | long_usage=yes | |||
|
2771 | rccontrol_stack_metrics_usage | |||
|
2772 | exit | |||
|
2773 | ;; | |||
|
2774 | ||||
|
2775 | esac | |||
|
2776 | ||||
|
2777 | # :command.command_filter | |||
|
2778 | action="stack metrics" | |||
|
2779 | ||||
|
2780 | # :command.parse_requirements_while | |||
|
2781 | while [[ $# -gt 0 ]]; do | |||
|
2782 | key="$1" | |||
|
2783 | case "$key" in | |||
|
2784 | ||||
|
2785 | -?* ) | |||
|
2786 | other_args+=("$1") | |||
|
2787 | shift | |||
|
2788 | ;; | |||
|
2789 | ||||
|
2790 | * ) | |||
|
2791 | # :command.parse_requirements_case | |||
|
2792 | # :command.parse_requirements_case_catch_all | |||
|
2793 | other_args+=("$1") | |||
|
2794 | shift | |||
2314 |
|
2795 | |||
2315 | ;; |
|
2796 | ;; | |
2316 |
|
2797 | |||
2317 | esac |
|
2798 | esac | |
2318 | done |
|
2799 | done | |
2319 |
|
2800 | |||
2320 | # :command.required_args_filter |
|
2801 | } | |
2321 | if [[ -z ${args[name]+x} ]]; then |
|
|||
2322 | printf "missing required argument: NAME\nusage: rccontrol stack NAME [SERVICES PARAMS...]\n" >&2 |
|
|||
2323 | exit 1 |
|
|||
2324 | fi |
|
|||
2325 |
|
2802 | |||
2326 | # :command.whitelist_filter |
|
2803 | # :command.parse_requirements | |
2327 | if [[ ! ${args[name]} =~ ^(router|metrics|services|rhodecode)$ ]]; then |
|
2804 | rccontrol_stack_services_parse_requirements() { | |
2328 | printf "%s\n" "name must be one of: router, metrics, services, rhodecode" >&2 |
|
2805 | # :command.fixed_flags_filter | |
2329 | exit 1 |
|
2806 | case "${1:-}" in | |
2330 | fi |
|
2807 | --help | -h ) | |
|
2808 | long_usage=yes | |||
|
2809 | rccontrol_stack_services_usage | |||
|
2810 | exit | |||
|
2811 | ;; | |||
|
2812 | ||||
|
2813 | esac | |||
|
2814 | ||||
|
2815 | # :command.command_filter | |||
|
2816 | action="stack services" | |||
|
2817 | ||||
|
2818 | # :command.parse_requirements_while | |||
|
2819 | while [[ $# -gt 0 ]]; do | |||
|
2820 | key="$1" | |||
|
2821 | case "$key" in | |||
|
2822 | ||||
|
2823 | -?* ) | |||
|
2824 | other_args+=("$1") | |||
|
2825 | shift | |||
|
2826 | ;; | |||
|
2827 | ||||
|
2828 | * ) | |||
|
2829 | # :command.parse_requirements_case | |||
|
2830 | # :command.parse_requirements_case_catch_all | |||
|
2831 | other_args+=("$1") | |||
|
2832 | shift | |||
|
2833 | ||||
|
2834 | ;; | |||
|
2835 | ||||
|
2836 | esac | |||
|
2837 | done | |||
|
2838 | ||||
|
2839 | } | |||
|
2840 | ||||
|
2841 | # :command.parse_requirements | |||
|
2842 | rccontrol_stack_rhodecode_parse_requirements() { | |||
|
2843 | # :command.fixed_flags_filter | |||
|
2844 | case "${1:-}" in | |||
|
2845 | --help | -h ) | |||
|
2846 | long_usage=yes | |||
|
2847 | rccontrol_stack_rhodecode_usage | |||
|
2848 | exit | |||
|
2849 | ;; | |||
|
2850 | ||||
|
2851 | esac | |||
|
2852 | ||||
|
2853 | # :command.command_filter | |||
|
2854 | action="stack rhodecode" | |||
|
2855 | ||||
|
2856 | # :command.parse_requirements_while | |||
|
2857 | while [[ $# -gt 0 ]]; do | |||
|
2858 | key="$1" | |||
|
2859 | case "$key" in | |||
|
2860 | ||||
|
2861 | -?* ) | |||
|
2862 | other_args+=("$1") | |||
|
2863 | shift | |||
|
2864 | ;; | |||
|
2865 | ||||
|
2866 | * ) | |||
|
2867 | # :command.parse_requirements_case | |||
|
2868 | # :command.parse_requirements_case_catch_all | |||
|
2869 | other_args+=("$1") | |||
|
2870 | shift | |||
|
2871 | ||||
|
2872 | ;; | |||
|
2873 | ||||
|
2874 | esac | |||
|
2875 | done | |||
|
2876 | ||||
|
2877 | } | |||
|
2878 | ||||
|
2879 | # :command.parse_requirements | |||
|
2880 | rccontrol_stack_all_parse_requirements() { | |||
|
2881 | # :command.fixed_flags_filter | |||
|
2882 | case "${1:-}" in | |||
|
2883 | --help | -h ) | |||
|
2884 | long_usage=yes | |||
|
2885 | rccontrol_stack_all_usage | |||
|
2886 | exit | |||
|
2887 | ;; | |||
|
2888 | ||||
|
2889 | esac | |||
|
2890 | ||||
|
2891 | # :command.command_filter | |||
|
2892 | action="stack all" | |||
|
2893 | ||||
|
2894 | # :command.parse_requirements_while | |||
|
2895 | while [[ $# -gt 0 ]]; do | |||
|
2896 | key="$1" | |||
|
2897 | case "$key" in | |||
|
2898 | ||||
|
2899 | -?* ) | |||
|
2900 | other_args+=("$1") | |||
|
2901 | shift | |||
|
2902 | ;; | |||
|
2903 | ||||
|
2904 | * ) | |||
|
2905 | # :command.parse_requirements_case | |||
|
2906 | # :command.parse_requirements_case_catch_all | |||
|
2907 | other_args+=("$1") | |||
|
2908 | shift | |||
|
2909 | ||||
|
2910 | ;; | |||
|
2911 | ||||
|
2912 | esac | |||
|
2913 | done | |||
2331 |
|
2914 | |||
2332 | } |
|
2915 | } | |
2333 |
|
2916 | |||
@@ -2408,6 +2991,89 b' rccontrol_stack_upgrade_parse_requirements() {' | |||||
2408 | } |
|
2991 | } | |
2409 |
|
2992 | |||
2410 | # :command.parse_requirements |
|
2993 | # :command.parse_requirements | |
|
2994 | rccontrol_cli_parse_requirements() { | |||
|
2995 | # :command.fixed_flags_filter | |||
|
2996 | case "${1:-}" in | |||
|
2997 | --help | -h ) | |||
|
2998 | long_usage=yes | |||
|
2999 | rccontrol_cli_usage | |||
|
3000 | exit | |||
|
3001 | ;; | |||
|
3002 | ||||
|
3003 | esac | |||
|
3004 | ||||
|
3005 | # :command.command_filter | |||
|
3006 | action=${1:-} | |||
|
3007 | ||||
|
3008 | case $action in | |||
|
3009 | -* ) | |||
|
3010 | ;; | |||
|
3011 | ||||
|
3012 | redis ) | |||
|
3013 | action="redis" | |||
|
3014 | shift | |||
|
3015 | rccontrol_cli_redis_parse_requirements "$@" | |||
|
3016 | shift $# | |||
|
3017 | ;; | |||
|
3018 | ||||
|
3019 | db ) | |||
|
3020 | action="db" | |||
|
3021 | shift | |||
|
3022 | rccontrol_cli_db_parse_requirements "$@" | |||
|
3023 | shift $# | |||
|
3024 | ;; | |||
|
3025 | ||||
|
3026 | db-upgrade ) | |||
|
3027 | action="db-upgrade" | |||
|
3028 | shift | |||
|
3029 | rccontrol_cli_db_upgrade_parse_requirements "$@" | |||
|
3030 | shift $# | |||
|
3031 | ;; | |||
|
3032 | ||||
|
3033 | storage ) | |||
|
3034 | action="storage" | |||
|
3035 | shift | |||
|
3036 | rccontrol_cli_storage_parse_requirements "$@" | |||
|
3037 | shift $# | |||
|
3038 | ;; | |||
|
3039 | ||||
|
3040 | # :command.command_fallback | |||
|
3041 | "" ) | |||
|
3042 | rccontrol_cli_usage >&2 | |||
|
3043 | exit 1 | |||
|
3044 | ;; | |||
|
3045 | ||||
|
3046 | * ) | |||
|
3047 | printf "invalid command: %s\n" "$action" >&2 | |||
|
3048 | exit 1 | |||
|
3049 | ;; | |||
|
3050 | ||||
|
3051 | esac | |||
|
3052 | ||||
|
3053 | # :command.parse_requirements_while | |||
|
3054 | while [[ $# -gt 0 ]]; do | |||
|
3055 | key="$1" | |||
|
3056 | case "$key" in | |||
|
3057 | ||||
|
3058 | -?* ) | |||
|
3059 | printf "invalid option: %s\n" "$key" >&2 | |||
|
3060 | exit 1 | |||
|
3061 | ;; | |||
|
3062 | ||||
|
3063 | * ) | |||
|
3064 | # :command.parse_requirements_case | |||
|
3065 | # :command.parse_requirements_case_simple | |||
|
3066 | printf "invalid argument: %s\n" "$key" >&2 | |||
|
3067 | exit 1 | |||
|
3068 | ||||
|
3069 | ;; | |||
|
3070 | ||||
|
3071 | esac | |||
|
3072 | done | |||
|
3073 | ||||
|
3074 | } | |||
|
3075 | ||||
|
3076 | # :command.parse_requirements | |||
2411 | rccontrol_cli_redis_parse_requirements() { |
|
3077 | rccontrol_cli_redis_parse_requirements() { | |
2412 | # :command.fixed_flags_filter |
|
3078 | # :command.fixed_flags_filter | |
2413 | case "${1:-}" in |
|
3079 | case "${1:-}" in | |
@@ -2420,7 +3086,7 b' rccontrol_cli_redis_parse_requirements() {' | |||||
2420 | esac |
|
3086 | esac | |
2421 |
|
3087 | |||
2422 | # :command.command_filter |
|
3088 | # :command.command_filter | |
2423 |
action="cli |
|
3089 | action="cli redis" | |
2424 |
|
3090 | |||
2425 | # :command.parse_requirements_while |
|
3091 | # :command.parse_requirements_while | |
2426 | while [[ $# -gt 0 ]]; do |
|
3092 | while [[ $# -gt 0 ]]; do | |
@@ -2458,7 +3124,7 b' rccontrol_cli_db_parse_requirements() {' | |||||
2458 | esac |
|
3124 | esac | |
2459 |
|
3125 | |||
2460 | # :command.command_filter |
|
3126 | # :command.command_filter | |
2461 |
action="cli |
|
3127 | action="cli db" | |
2462 |
|
3128 | |||
2463 | # :command.parse_requirements_while |
|
3129 | # :command.parse_requirements_while | |
2464 | while [[ $# -gt 0 ]]; do |
|
3130 | while [[ $# -gt 0 ]]; do | |
@@ -2496,7 +3162,45 b' rccontrol_cli_db_upgrade_parse_requirements() {' | |||||
2496 | esac |
|
3162 | esac | |
2497 |
|
3163 | |||
2498 | # :command.command_filter |
|
3164 | # :command.command_filter | |
2499 |
action="cli |
|
3165 | action="cli db-upgrade" | |
|
3166 | ||||
|
3167 | # :command.parse_requirements_while | |||
|
3168 | while [[ $# -gt 0 ]]; do | |||
|
3169 | key="$1" | |||
|
3170 | case "$key" in | |||
|
3171 | ||||
|
3172 | -?* ) | |||
|
3173 | printf "invalid option: %s\n" "$key" >&2 | |||
|
3174 | exit 1 | |||
|
3175 | ;; | |||
|
3176 | ||||
|
3177 | * ) | |||
|
3178 | # :command.parse_requirements_case | |||
|
3179 | # :command.parse_requirements_case_simple | |||
|
3180 | printf "invalid argument: %s\n" "$key" >&2 | |||
|
3181 | exit 1 | |||
|
3182 | ||||
|
3183 | ;; | |||
|
3184 | ||||
|
3185 | esac | |||
|
3186 | done | |||
|
3187 | ||||
|
3188 | } | |||
|
3189 | ||||
|
3190 | # :command.parse_requirements | |||
|
3191 | rccontrol_cli_storage_parse_requirements() { | |||
|
3192 | # :command.fixed_flags_filter | |||
|
3193 | case "${1:-}" in | |||
|
3194 | --help | -h ) | |||
|
3195 | long_usage=yes | |||
|
3196 | rccontrol_cli_storage_usage | |||
|
3197 | exit | |||
|
3198 | ;; | |||
|
3199 | ||||
|
3200 | esac | |||
|
3201 | ||||
|
3202 | # :command.command_filter | |||
|
3203 | action="cli storage" | |||
2500 |
|
3204 | |||
2501 | # :command.parse_requirements_while |
|
3205 | # :command.parse_requirements_while | |
2502 | while [[ $# -gt 0 ]]; do |
|
3206 | while [[ $# -gt 0 ]]; do | |
@@ -2669,12 +3373,21 b' initialize() {' | |||||
2669 | ENV_FILE=$PWD/.env |
|
3373 | ENV_FILE=$PWD/.env | |
2670 |
|
3374 | |||
2671 | # bootstrap file is a config file at the same time |
|
3375 | # bootstrap file is a config file at the same time | |
2672 | BOOTSTRAP_FILE='.rccontrol-bootstrap' |
|
|||
2673 | CONFIG_FILE='.rccontrol.ini' |
|
3376 | CONFIG_FILE='.rccontrol.ini' | |
2674 |
|
3377 | |||
|
3378 | # STACK_LIST | |||
2675 | VALID_SERVICES="router metrics services rhodecode" |
|
3379 | VALID_SERVICES="router metrics services rhodecode" | |
2676 | DOCKER_DEFS_WORK_DIR="docker_defs" |
|
3380 | DOCKER_DEFS_WORK_DIR="docker_defs" | |
2677 |
|
3381 | |||
|
3382 | # stage key, saved in .rccontrol.ini : stage func to execute | |||
|
3383 | BOOTSTRAP_STAGES="\ | |||
|
3384 | bootstrap_docker_install:bootstrap_docker_install \ | |||
|
3385 | bootstrap_docker_commons:bootstrap_docker_commons \ | |||
|
3386 | bootstrap_config:bootstrap_config \ | |||
|
3387 | bootstrap_definitions:bootstrap_definitions \ | |||
|
3388 | bootstrap_overrides:bootstrap_overrides \ | |||
|
3389 | " | |||
|
3390 | ||||
2678 | #echo "1 ----" |
|
3391 | #echo "1 ----" | |
2679 | #echo $RC_STACK_SERVICES_EXT |
|
3392 | #echo $RC_STACK_SERVICES_EXT | |
2680 | #echo $RC_STACK_METRICS_EXT |
|
3393 | #echo $RC_STACK_METRICS_EXT | |
@@ -2706,6 +3419,11 b' initialize() {' | |||||
2706 |
|
3419 | |||
2707 | #env | grep RC_ |
|
3420 | #env | grep RC_ | |
2708 |
|
3421 | |||
|
3422 | docker_ping_host() { | |||
|
3423 | PING_HOST="$1" | |||
|
3424 | docker run --network rhodecode_network --rm alpine ping "$PING_HOST" | |||
|
3425 | } | |||
|
3426 | ||||
2709 | # backup files from a docker volume into /tmp/backup.tar.gz |
|
3427 | # backup files from a docker volume into /tmp/backup.tar.gz | |
2710 | docker-volume-backup-compressed() { |
|
3428 | docker-volume-backup-compressed() { | |
2711 | docker run --rm -v /tmp:/backup --volumes-from "$1" debian:jessie tar -czvf /backup/backup.tar.gz "${@:2}" |
|
3429 | docker run --rm -v /tmp:/backup --volumes-from "$1" debian:jessie tar -czvf /backup/backup.tar.gz "${@:2}" | |
@@ -2816,6 +3534,46 b' run() {' | |||||
2816 | rccontrol_stack_command |
|
3534 | rccontrol_stack_command | |
2817 | fi |
|
3535 | fi | |
2818 |
|
3536 | |||
|
3537 | elif [[ $action == "stack router" ]]; then | |||
|
3538 | if [[ ${args[--help]:-} ]]; then | |||
|
3539 | long_usage=yes | |||
|
3540 | rccontrol_stack_router_usage | |||
|
3541 | else | |||
|
3542 | rccontrol_stack_router_command | |||
|
3543 | fi | |||
|
3544 | ||||
|
3545 | elif [[ $action == "stack metrics" ]]; then | |||
|
3546 | if [[ ${args[--help]:-} ]]; then | |||
|
3547 | long_usage=yes | |||
|
3548 | rccontrol_stack_metrics_usage | |||
|
3549 | else | |||
|
3550 | rccontrol_stack_metrics_command | |||
|
3551 | fi | |||
|
3552 | ||||
|
3553 | elif [[ $action == "stack services" ]]; then | |||
|
3554 | if [[ ${args[--help]:-} ]]; then | |||
|
3555 | long_usage=yes | |||
|
3556 | rccontrol_stack_services_usage | |||
|
3557 | else | |||
|
3558 | rccontrol_stack_services_command | |||
|
3559 | fi | |||
|
3560 | ||||
|
3561 | elif [[ $action == "stack rhodecode" ]]; then | |||
|
3562 | if [[ ${args[--help]:-} ]]; then | |||
|
3563 | long_usage=yes | |||
|
3564 | rccontrol_stack_rhodecode_usage | |||
|
3565 | else | |||
|
3566 | rccontrol_stack_rhodecode_command | |||
|
3567 | fi | |||
|
3568 | ||||
|
3569 | elif [[ $action == "stack all" ]]; then | |||
|
3570 | if [[ ${args[--help]:-} ]]; then | |||
|
3571 | long_usage=yes | |||
|
3572 | rccontrol_stack_all_usage | |||
|
3573 | else | |||
|
3574 | rccontrol_stack_all_command | |||
|
3575 | fi | |||
|
3576 | ||||
2819 | elif [[ $action == "stack-status" ]]; then |
|
3577 | elif [[ $action == "stack-status" ]]; then | |
2820 | if [[ ${args[--help]:-} ]]; then |
|
3578 | if [[ ${args[--help]:-} ]]; then | |
2821 | long_usage=yes |
|
3579 | long_usage=yes | |
@@ -2832,7 +3590,15 b' run() {' | |||||
2832 | rccontrol_stack_upgrade_command |
|
3590 | rccontrol_stack_upgrade_command | |
2833 | fi |
|
3591 | fi | |
2834 |
|
3592 | |||
2835 |
elif [[ $action == "cli |
|
3593 | elif [[ $action == "cli" ]]; then | |
|
3594 | if [[ ${args[--help]:-} ]]; then | |||
|
3595 | long_usage=yes | |||
|
3596 | rccontrol_cli_usage | |||
|
3597 | else | |||
|
3598 | rccontrol_cli_command | |||
|
3599 | fi | |||
|
3600 | ||||
|
3601 | elif [[ $action == "cli redis" ]]; then | |||
2836 | if [[ ${args[--help]:-} ]]; then |
|
3602 | if [[ ${args[--help]:-} ]]; then | |
2837 | long_usage=yes |
|
3603 | long_usage=yes | |
2838 | rccontrol_cli_redis_usage |
|
3604 | rccontrol_cli_redis_usage | |
@@ -2840,7 +3606,7 b' run() {' | |||||
2840 | rccontrol_cli_redis_command |
|
3606 | rccontrol_cli_redis_command | |
2841 | fi |
|
3607 | fi | |
2842 |
|
3608 | |||
2843 |
elif [[ $action == "cli |
|
3609 | elif [[ $action == "cli db" ]]; then | |
2844 | if [[ ${args[--help]:-} ]]; then |
|
3610 | if [[ ${args[--help]:-} ]]; then | |
2845 | long_usage=yes |
|
3611 | long_usage=yes | |
2846 | rccontrol_cli_db_usage |
|
3612 | rccontrol_cli_db_usage | |
@@ -2848,7 +3614,7 b' run() {' | |||||
2848 | rccontrol_cli_db_command |
|
3614 | rccontrol_cli_db_command | |
2849 | fi |
|
3615 | fi | |
2850 |
|
3616 | |||
2851 |
elif [[ $action == "cli |
|
3617 | elif [[ $action == "cli db-upgrade" ]]; then | |
2852 | if [[ ${args[--help]:-} ]]; then |
|
3618 | if [[ ${args[--help]:-} ]]; then | |
2853 | long_usage=yes |
|
3619 | long_usage=yes | |
2854 | rccontrol_cli_db_upgrade_usage |
|
3620 | rccontrol_cli_db_upgrade_usage | |
@@ -2856,6 +3622,14 b' run() {' | |||||
2856 | rccontrol_cli_db_upgrade_command |
|
3622 | rccontrol_cli_db_upgrade_command | |
2857 | fi |
|
3623 | fi | |
2858 |
|
3624 | |||
|
3625 | elif [[ $action == "cli storage" ]]; then | |||
|
3626 | if [[ ${args[--help]:-} ]]; then | |||
|
3627 | long_usage=yes | |||
|
3628 | rccontrol_cli_storage_usage | |||
|
3629 | else | |||
|
3630 | rccontrol_cli_storage_command | |||
|
3631 | fi | |||
|
3632 | ||||
2859 | elif [[ $action == "_completions" ]]; then |
|
3633 | elif [[ $action == "_completions" ]]; then | |
2860 | if [[ ${args[--help]:-} ]]; then |
|
3634 | if [[ ${args[--help]:-} ]]; then | |
2861 | long_usage=yes |
|
3635 | long_usage=yes |
@@ -11,7 +11,7 b' ARG RHODECODE_VERSION=4.28.0' | |||||
11 | ARG RHODECODE_DB=sqlite |
|
11 | ARG RHODECODE_DB=sqlite | |
12 | ARG RHODECODE_USER_NAME=admin |
|
12 | ARG RHODECODE_USER_NAME=admin | |
13 | ARG RHODECODE_USER_PASS=secret4 |
|
13 | ARG RHODECODE_USER_PASS=secret4 | |
14 |
ARG RHODECODE_USER_EMAIL= |
|
14 | ARG RHODECODE_USER_EMAIL=admin@server.local | |
15 |
|
15 | |||
16 | # nix ver/channels |
|
16 | # nix ver/channels | |
17 | ARG DEV_NIX_VERSION=2.0.4 |
|
17 | ARG DEV_NIX_VERSION=2.0.4 | |
@@ -232,7 +232,7 b' echo "** install rhodecode ${RHODECODE_TYPE} ${RHODECODE_VERSION} **" && \\' | |||||
232 | RHODECODE_PATH=/home/$RC_USER/.rccontrol/${RC_TYPE_ID} && \ |
|
232 | RHODECODE_PATH=/home/$RC_USER/.rccontrol/${RC_TYPE_ID} && \ | |
233 | rm -rf $BUILD_BIN_DIR/bin && ln -s ${RHODECODE_PATH}/profile/bin $BUILD_BIN_DIR/ && \ |
|
233 | rm -rf $BUILD_BIN_DIR/bin && ln -s ${RHODECODE_PATH}/profile/bin $BUILD_BIN_DIR/ && \ | |
234 | cp -v ${RHODECODE_PATH}/rhodecode.ini $BUILD_CONF/rhodecode.ini && \ |
|
234 | cp -v ${RHODECODE_PATH}/rhodecode.ini $BUILD_CONF/rhodecode.ini && \ | |
235 | cp -v ${RHODECODE_PATH}/gunicorn_conf.py $BUILD_CONF/gunicorn_conf.py && \ |
|
235 | cp -v ${RHODECODE_PATH}/gunicorn_conf.py $BUILD_CONF/gunicorn_conf_rc.py && \ | |
236 | cp -v ${RHODECODE_PATH}/search_mapping.ini $BUILD_CONF/search_mapping.ini && \ |
|
236 | cp -v ${RHODECODE_PATH}/search_mapping.ini $BUILD_CONF/search_mapping.ini && \ | |
237 | mkdir -p $RHODECODE_DATA_DIR/static && cp -r ${RHODECODE_PATH}/public/* $RHODECODE_DATA_DIR/static/ && \ |
|
237 | mkdir -p $RHODECODE_DATA_DIR/static && cp -r ${RHODECODE_PATH}/public/* $RHODECODE_DATA_DIR/static/ && \ | |
238 | rm ${RHODECODE_PATH}/rhodecode.db && \ |
|
238 | rm ${RHODECODE_PATH}/rhodecode.db && \ | |
@@ -280,4 +280,4 b' VOLUME /var/log/rhodecode' | |||||
280 | ENTRYPOINT ["/opt/entrypoints.d/entrypoint.sh"] |
|
280 | ENTRYPOINT ["/opt/entrypoints.d/entrypoint.sh"] | |
281 |
|
281 | |||
282 | # compose can override this |
|
282 | # compose can override this | |
283 | CMD [ "$BUILD_BIN_DIR/bin/gunicorn", "--error-logfile=-", "--paster=/etc/rhodecode/conf_build/run.ini", "--config=/etc/rhodecode/conf_build/gunicorn_conf.py" ] |
|
283 | CMD [ "$BUILD_BIN_DIR/bin/gunicorn", "--error-logfile=-", "--paster=/etc/rhodecode/conf_build/run.ini", "--config=/etc/rhodecode/conf_build/gunicorn_conf_rc.py" ] |
@@ -11,7 +11,7 b' ARG RHODECODE_VERSION=4.28.0' | |||||
11 | ARG RHODECODE_DB=sqlite |
|
11 | ARG RHODECODE_DB=sqlite | |
12 | ARG RHODECODE_USER_NAME=admin |
|
12 | ARG RHODECODE_USER_NAME=admin | |
13 | ARG RHODECODE_USER_PASS=secret4 |
|
13 | ARG RHODECODE_USER_PASS=secret4 | |
14 |
ARG RHODECODE_USER_EMAIL= |
|
14 | ARG RHODECODE_USER_EMAIL=admin@server.local | |
15 |
|
15 | |||
16 | # nix ver/channels |
|
16 | # nix ver/channels | |
17 | ARG DEV_NIX_VERSION=2.0.4 |
|
17 | ARG DEV_NIX_VERSION=2.0.4 | |
@@ -66,7 +66,7 b' ENV \\' | |||||
66 | ENV SVN_LOCALE_DEPS apache2 apache2-utils libapache2-mod-svn |
|
66 | ENV SVN_LOCALE_DEPS apache2 apache2-utils libapache2-mod-svn | |
67 | ENV SSH_LOCALE_DEPS openssh-server |
|
67 | ENV SSH_LOCALE_DEPS openssh-server | |
68 | ENV PYTHON_DEPS python2 |
|
68 | ENV PYTHON_DEPS python2 | |
69 |
ENV EXTRA_DEPS |
|
69 | ENV EXTRA_DEPS "" | |
70 |
|
70 | |||
71 | ENV \ |
|
71 | ENV \ | |
72 | PATH=$PATH:/nix/var/nix/profiles/per-user/$RC_USER/profile/bin:/home/$RC_USER/rhodecode-enterprise-ee/profile/bin \ |
|
72 | PATH=$PATH:/nix/var/nix/profiles/per-user/$RC_USER/profile/bin:/home/$RC_USER/rhodecode-enterprise-ee/profile/bin \ | |
@@ -202,16 +202,17 b' COPY --chown=$RC_USER:$RC_USER .cache/* /home/$RC_USER/.rccontrol/cache/' | |||||
202 | COPY --chown=$RC_USER:$RC_USER config/_shared/rhodecode_enterprise.license /home/$RC_USER/.rccontrol/bootstrap/ |
|
202 | COPY --chown=$RC_USER:$RC_USER config/_shared/rhodecode_enterprise.license /home/$RC_USER/.rccontrol/bootstrap/ | |
203 | COPY --chown=$RC_USER:$RC_USER service/rhodecode/bootstrap/* /home/$RC_USER/.rccontrol/bootstrap/ |
|
203 | COPY --chown=$RC_USER:$RC_USER service/rhodecode/bootstrap/* /home/$RC_USER/.rccontrol/bootstrap/ | |
204 |
|
204 | |||
|
205 | RUN \ | |||
|
206 | echo "**** locale-archive path ****" && \ | |||
|
207 | mv -v /home/$RC_USER/.rccontrol/cache/locale-archive /var/opt/locale-archive | |||
|
208 | ||||
205 | COPY --chown=$RC_USER:$RC_USER .source/ /home/$RC_USER/ |
|
209 | COPY --chown=$RC_USER:$RC_USER .source/ /home/$RC_USER/ | |
206 | RUN \ |
|
210 | RUN \ | |
207 | echo "** prepare rhodecode dirs **" && \ |
|
211 | echo "** prepare rhodecode dirs **" && \ | |
208 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/vcsserver-1 && \ |
|
212 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/vcsserver-1 && \ | |
209 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/community-1 && \ |
|
213 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/community-1 && \ | |
210 |
install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/enterprise-1 && \ |
|
214 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/enterprise-1 && \ | |
211 |
|
215 | echo "Done rhodecode dirs" | ||
212 | RUN \ |
|
|||
213 | echo "**** locale-archive path ****" && \ |
|
|||
214 | mv -v /home/$RC_USER/.rccontrol/cache/locale-archive /var/opt/locale-archive |
|
|||
215 |
|
216 | |||
216 | # change to non-root user for RUN commands |
|
217 | # change to non-root user for RUN commands | |
217 | USER $RC_USER |
|
218 | USER $RC_USER | |
@@ -220,13 +221,15 b' WORKDIR /home/$RC_USER' | |||||
220 |
|
221 | |||
221 | RUN \ |
|
222 | RUN \ | |
222 | echo "** download and install nix ** from $DEV_NIX_VERSION/install" && \ |
|
223 | echo "** download and install nix ** from $DEV_NIX_VERSION/install" && \ | |
223 | curl -L https://releases.nixos.org/nix/nix-$DEV_NIX_VERSION/install | USER=$RC_USER /bin/bash |
|
224 | curl -L https://releases.nixos.org/nix/nix-$DEV_NIX_VERSION/install | USER=$RC_USER /bin/bash && \ | |
|
225 | echo "Done nix install" | |||
224 |
|
226 | |||
225 | RUN \ |
|
227 | RUN \ | |
226 | echo "** update nix package database and set channel to $DEV_NIX_CHANNEL **" && \ |
|
228 | echo "** update nix package database and set channel to $DEV_NIX_CHANNEL **" && \ | |
227 | . /home/rhodecode/.nix-profile/etc/profile.d/nix.sh && \ |
|
229 | . /home/rhodecode/.nix-profile/etc/profile.d/nix.sh && \ | |
228 | nix-channel --add https://channels.nixos.org/$DEV_NIX_CHANNEL nixpkgs && \ |
|
230 | nix-channel --add https://channels.nixos.org/$DEV_NIX_CHANNEL nixpkgs && \ | |
229 | nix-channel --update |
|
231 | nix-channel --update && \ | |
|
232 | echo "done nix package updates" | |||
230 |
|
233 | |||
231 |
|
234 | |||
232 | RUN \ |
|
235 | RUN \ | |
@@ -272,7 +275,7 b' echo "** install rhodecode ${RHODECODE_VERSION} **" && \\' | |||||
272 | rm -rf $BUILD_BIN_DIR/bin && \ |
|
275 | rm -rf $BUILD_BIN_DIR/bin && \ | |
273 | cp -rv --preserve=links /home/$RC_USER/.rccontrol/enterprise-1/profile/bin $BUILD_BIN_DIR/ && \ |
|
276 | cp -rv --preserve=links /home/$RC_USER/.rccontrol/enterprise-1/profile/bin $BUILD_BIN_DIR/ && \ | |
274 | cp -v ${RHODECODE_PATH}/configs/production.ini $BUILD_CONF/rhodecode.ini && \ |
|
277 | cp -v ${RHODECODE_PATH}/configs/production.ini $BUILD_CONF/rhodecode.ini && \ | |
275 | cp -v ${RHODECODE_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf.py && \ |
|
278 | cp -v ${RHODECODE_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_rc.py && \ | |
276 | mkdir -p $RHODECODE_DATA_DIR/static && cp -r /home/$RC_USER/.rccontrol/enterprise-1/profile/etc/static/* $RHODECODE_DATA_DIR/static/ && \ |
|
279 | mkdir -p $RHODECODE_DATA_DIR/static && cp -r /home/$RC_USER/.rccontrol/enterprise-1/profile/etc/static/* $RHODECODE_DATA_DIR/static/ && \ | |
277 | echo "Done installing rhodecode" |
|
280 | echo "Done installing rhodecode" | |
278 |
|
281 | |||
@@ -321,4 +324,4 b' VOLUME /var/log/rhodecode' | |||||
321 | ENTRYPOINT ["/opt/entrypoints.d/entrypoint.sh"] |
|
324 | ENTRYPOINT ["/opt/entrypoints.d/entrypoint.sh"] | |
322 |
|
325 | |||
323 | # compose can override this |
|
326 | # compose can override this | |
324 | CMD [ "$BUILD_BIN_DIR/bin/gunicorn", "--error-logfile=-", "--paster=/etc/rhodecode/conf_build/run.ini", "--config=/etc/rhodecode/conf_build/gunicorn_conf.py" ] |
|
327 | CMD [ "$BUILD_BIN_DIR/bin/gunicorn", "--error-logfile=-", "--paster=/etc/rhodecode/conf_build/run.ini", "--config=/etc/rhodecode/conf_build/gunicorn_conf_rc.py" ] |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now