##// END OF EJS Templates
docs: added 5.8.0 changelog
docs: added 5.8.0 changelog

File last commit:

r418:9682fc67
r423:f4b42dc7 v5.8.0
Show More
docker-compose-apps.yaml
310 lines | 9.7 KiB | text/x-yaml | YamlLexer
/ docker-compose-apps.yaml
release of new installer/docker stack updates...
r23
x-logging: &custom-logging
loki: small docs on logging driver
r47 # docker plugin install grafana/loki-docker-driver:2.7.1 --alias loki --grant-all-permissions
release of new installer/docker stack updates...
r23 # NOTE: loki logging driver ONLY works for host type networks...
driver: loki
options:
stack: enable auth for loki as it needs public exposure...
r57 #loki-url: "http://${RC_LOKI_AUTH}loki:3100/loki/api/v1/push"
loki-url: "http://${RC_LOKI_AUTH}127.0.0.1:3100/loki/api/v1/push"
release of new installer/docker stack updates...
r23 loki-retries: "5"
loki-timeout: "1s"
loki-max-backoff: "800ms"
services:
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 # base shared options for RhodeCode type services
common_base:
compose: freeze to 4.28.0 default version if not given....
r27 image: rhodecode/rhodecode-${RC_EDITION}:${RC_VERSION:-4.28.0}
release of new installer/docker stack updates...
r23 stdin_open: true
tty: true
restart: always
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 deploy:
# override this in .custom/docker-compose-apps.override.yaml to scale up
replicas: 0
networks:
- rhodecode_network
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- confvolume:/etc/rhodecode/conf
- rc_reposvolume:/var/opt/rhodecode_repo_store
- rc_datavolume:/var/opt/rhodecode_data
logging:
*custom-logging
# base definition WITHOUT labels to full control over override and custom service
# main rhodecode will use extends + service from that base
rhodecode_base:
extends:
service: common_base
rccontrol: fixed env flags propagation to services
r40 env_file:
- ${RC_ENV_FILE:?must-specify-rc-env-file}
rcstack: re-architecture apps docker compose for simplicity and consistency
r169
release of new installer/docker stack updates...
r23 command: [
"/usr/local/bin/rhodecode_bin/bin/gunicorn",
"--error-logfile=-",
rccontrol: use standard names for .ini files
r49 "--paster=/etc/rhodecode/conf/rhodecode.ini",
multiple changes...
r24 "--config=/etc/rhodecode/conf/gunicorn_conf_rc.py"
release of new installer/docker stack updates...
r23 ]
build:
context: .
fix(core): fixed svn apps to not override by default SVN env variables
r289 dockerfile: service/rhodecode/rhodecode_5.dockerfile
release of new installer/docker stack updates...
r23 args:
apps: ensure celery 3.X / 5.X compat in running commands
r223 TZ: ${TZ:-UTC}
compose: freeze to 4.28.0 default version if not given....
r27 RHODECODE_VERSION: ${RC_VERSION:-4.28.0}
release of new installer/docker stack updates...
r23 RHODECODE_DB: postgresql://rhodecode:${DB_PASSWORD:?must-specify-db-password}@database/${DB_NAME:?must-specify-db-name}
RHODECODE_USER_NAME: ${RHODECODE_USER_NAME}
RHODECODE_USER_PASS: ${RHODECODE_USER_PASS}
RHODECODE_USER_EMAIL: ${RHODECODE_USER_EMAIL}
environment:
RC_APP_TYPE: rhodecode_http
RC_APP_PROC: 1
compose: re-architecture apps compose for double service...
r167 RC_APP_PORT: "10020"
release of new installer/docker stack updates...
r23 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
GEVENT_RESOLVER: "ares"
apps: ensure celery 3.X / 5.X compat in running commands
r223 GUNICORN_CMD_ARGS: "--bind=0.0.0.0:10020 --name=gunicorn-rhodecode-1 --workers=2"
release of new installer/docker stack updates...
r23
DB_UPGRADE: 1 # run the DB upgrade
SETUP_APP: 1 # run the application default settings setup, can be turned off after initial run
#FORCE_DB_INIT_FILE: 1 # force the database init, warning: destroys old DB
#FORCE_RC_SETUP_APP: 1 # force running setup scripts for configuration/license application
rccontrol: use standard names for .ini files
r49 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.ini
release of new installer/docker stack updates...
r23
# SVN Specific
MOD_DAV_SVN_PORT: 8090
docker: fix SVN paths and expose option to change log-level
r281 MOD_DAV_SVN_LOG_LEVEL: info
rccontrol: version bump to latest build
r81 APACHE_LOG_DIR: /var/log
release of new installer/docker stack updates...
r23 MOD_DAV_SVN_CONF_FILE: /etc/rhodecode/conf/svn/mod_dav_svn.conf
healthcheck:
compose: re-architecture apps compose for double service...
r167 test: curl -A RhodeCode-Healthcheck -s -o /dev/null -w '%{http_code}' http://127.0.0.1:$${RC_APP_PORT}/_admin/ops/ping
feat(apps): added - now disabled - faster startup HC
r346 # requires docker engine 25
#start_period: 2m
#start_interval: 5s
release of new installer/docker stack updates...
r23 interval: 60s
feat(apps): added - now disabled - faster startup HC
r346 timeout: 30s
release of new installer/docker stack updates...
r23 retries: 10
tmpfs:
apps: set default size for ramdisk drive
r104 - /data_ramdisk:size=${RC_DATA_RAMDISK_SIZE:-256M}
release of new installer/docker stack updates...
r23
compose: re-architecture apps compose for double service...
r167 rhodecode:
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 # depends_on:
# - redis
# - database
apps: ensure celery 3.X / 5.X compat in running commands
r223 # - channelstream
# ports:
# - "127.0.0.1::10020"
extends:
service: rhodecode_base
build: expose static files from rhodecode image to nginx image
r233
compose: re-architecture apps compose for double service...
r167 deploy:
# override this in .custom/docker-compose-apps.override.yaml to scale up
apps: updated description on scaling best practices
r221 # replicas of rhodecode and vcsserver should be equal in most cases
compose: re-architecture apps compose for double service...
r167 replicas: 1
apps: ensure celery 3.X / 5.X compat in running commands
r223
build: expose static files from rhodecode image to nginx image
r233 volumes:
- ./.custom/static_files:/var/opt/rhodecode_static_data
release of new installer/docker stack updates...
r23 labels:
docker: added healthcheck for sshd and added autoheal flags to fix unhealthy containers
r65 - "autoheal=true"
multiple changes...
r24 - "traefik.enable=true"
- "traefik.http.routers.rhodecode.entrypoints=http"
docker: multiple changes...
r73 - "traefik.http.routers.rhodecode.priority=10"
rccontrol: added env control lib to be able to generate build/runtime file
r33 - "traefik.http.routers.rhodecode.rule=Host(`${RC_HOSTNAME:?must-specify-rhodecode-hostname}`)"
docker: updated override examples, make service definition explicit
r42 - "traefik.http.routers.rhodecode.service=rhodecode-web"
- "traefik.http.services.rhodecode-web.loadbalancer.server.port=10020"
docker: multiple changes...
r73 # HTTP + SSL example, should be put into .custom/docker-compose-apps.override.yaml
#- "traefik.http.routers.rhodecode.entrypoints=http,https"
release of new installer/docker stack updates...
r23
vcsserver:
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 # depends_on:
# - redis
apps: ensure celery 3.X / 5.X compat in running commands
r223 # ports:
# - "127.0.0.1::10010"
extends:
service: common_base
rccontrol: fixed env flags propagation to services
r40 env_file:
- ${RC_ENV_FILE:?must-specify-rc-env-file}
release of new installer/docker stack updates...
r23 command: [
rcstack: small fixes to services...
r172 "/usr/local/bin/rhodecode_bin/vcs_bin/gunicorn",
release of new installer/docker stack updates...
r23 "--error-logfile=-",
rccontrol: use standard names for .ini files
r49 "--paster=/etc/rhodecode/conf/vcsserver.ini",
release of new installer/docker stack updates...
r23 "--config=/etc/rhodecode/conf/gunicorn_conf_vcs.py"
]
multiple changes...
r24 deploy:
# override this in .custom/docker-compose-apps.override.yaml to scale up
apps: updated description on scaling best practices
r221 # replicas of rhodecode and vcsserver should be equal in most cases
multiple changes...
r24 replicas: 1
release of new installer/docker stack updates...
r23 environment:
RC_APP_TYPE: rhodecode_vcsserver
RC_APP_PROC: 1
compose: re-architecture apps compose for double service...
r167 RC_APP_PORT: "10010"
rccontrol: use standard names for .ini files
r49 MAIN_INI_PATH: /etc/rhodecode/conf/vcsserver.ini
release of new installer/docker stack updates...
r23 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
apps: ensure celery 3.X / 5.X compat in running commands
r223 GUNICORN_CMD_ARGS: "--bind=0.0.0.0:10010 --name=gunicorn-vcsserver-1 --workers=3"
compose: re-architecture apps compose for double service...
r167 healthcheck:
test: curl -A RhodeCode-Healthcheck -s -o /dev/null -w '%{http_code}' http://127.0.0.1:$${RC_APP_PORT}/status
timeout: 30s
start_period: 5s
interval: 60s
retries: 10
docker: added healthcheck for sshd and added autoheal flags to fix unhealthy containers
r65 labels:
- "autoheal=true"
release of new installer/docker stack updates...
r23 celery:
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 extends:
service: common_base
# depends_on:
# - database
# - redis
rccontrol: fixed env flags propagation to services
r40 env_file:
- ${RC_ENV_FILE:?must-specify-rc-env-file}
release of new installer/docker stack updates...
r23 command: [
"/usr/local/bin/rhodecode_bin/bin/celery",
apps: ensure celery 3.X / 5.X compat in running commands
r223 "--no-color",
"--app=rhodecode.lib.celerylib.loader",
release of new installer/docker stack updates...
r23 "worker",
fix(celery): use higher CLI value for max-tasks-per-child as a defult for rcstack...
r398 "--autoscale=10,2",
"--max-tasks-per-child=150",
fix(celery): make sure celery workers get proper hostnames set for scaling
r394 "--hostname=rc-celery-worker@%h",
compose: added more config options into override templates
r154 "--task-events",
release of new installer/docker stack updates...
r23 "--loglevel=DEBUG",
rccontrol: use standard names for .ini files
r49 "--ini=/etc/rhodecode/conf/rhodecode.ini"
release of new installer/docker stack updates...
r23 ]
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 deploy:
# override this in .custom/docker-compose-apps.override.yaml to scale up
replicas: 1
release of new installer/docker stack updates...
r23 environment:
RC_APP_TYPE: rhodecode_celery
RC_APP_PROC: 1
rccontrol: use standard names for .ini files
r49 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.ini
release of new installer/docker stack updates...
r23 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 labels:
- "autoheal=true"
release of new installer/docker stack updates...
r23
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 celery-beat:
extends:
service: common_base
release of new installer/docker stack updates...
r23 # depends_on:
# - database
# - redis
rccontrol: fixed env flags propagation to services
r40 env_file:
- ${RC_ENV_FILE:?must-specify-rc-env-file}
release of new installer/docker stack updates...
r23 command: [
"/usr/local/bin/rhodecode_bin/bin/celery",
"--no-color",
"--app=rhodecode.lib.celerylib.loader",
apps: ensure celery 3.X / 5.X compat in running commands
r223 "beat",
release of new installer/docker stack updates...
r23 "--scheduler=rhodecode.lib.celerylib.scheduler.RcScheduler",
"--loglevel=DEBUG",
rccontrol: use standard names for .ini files
r49 "--ini=/etc/rhodecode/conf/rhodecode.ini"
release of new installer/docker stack updates...
r23 ]
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 deploy:
# override this in .custom/docker-compose-apps.override.yaml to scale up
replicas: 1
release of new installer/docker stack updates...
r23 environment:
RC_APP_TYPE: rhodecode_beat
RC_APP_PROC: 1
rccontrol: use standard names for .ini files
r49 MAIN_INI_PATH: /etc/rhodecode/conf/rhodecode.ini
release of new installer/docker stack updates...
r23 SSL_CERT_FILE: "/etc/rhodecode/conf/ca-bundle.crt"
REQUESTS_CA_BUNDLE: "/etc/rhodecode/conf/ca-bundle.crt"
GIT_SSL_CAINFO: "/etc/rhodecode/conf/ca-bundle.crt"
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 labels:
- "autoheal=true"
release of new installer/docker stack updates...
r23
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 svn:
extends:
service: common_base
release of new installer/docker stack updates...
r23 # depends_on:
# - database
# - redis
# build:
# context: .
# dockerfile: service/svn/rhodecode_svn.dockerfile
# args:
# APACHE_VER: 1.3
rccontrol: fixed env flags propagation to services
r40 env_file:
- ${RC_ENV_FILE:?must-specify-rc-env-file}
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 command: [
svn: fix apache command
r266 "apachectl",
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 "-D",
"FOREGROUND"
]
deploy:
# override this in .custom/docker-compose-apps.override.yaml to scale up
replicas: 1
release of new installer/docker stack updates...
r23 environment:
RC_APP_TYPE: rhodecode_svn
# SVN Specific
fix(core): fixed svn apps to not override by default SVN env variables
r289 APACHE_LOG_DIR: /var/log
release of new installer/docker stack updates...
r23 MOD_DAV_SVN_PORT: 8090
docker: fix SVN paths and expose option to change log-level
r281 MOD_DAV_SVN_LOG_LEVEL: info
release of new installer/docker stack updates...
r23 MOD_DAV_SVN_CONF_FILE: /etc/rhodecode/conf/svn/mod_dav_svn.conf
fix(core): fixed svn apps to not override by default SVN env variables
r289 # image specific, can be skipped, as the info is stored inside the image
#MOD_DAV_CORE_MODULES_DIR: /home/rhodecode/apache2/modules/
#MOD_DAV_SVN_MODULE: /home/rhodecode/apache2/modules/mod_dav.so
apache: expose env vars to run Apache svn service
r190
release of new installer/docker stack updates...
r23 healthcheck:
compose: re-architecture apps compose for double service...
r167 test: curl -A RhodeCode-Healthcheck -s -o /dev/null -w '%{http_code}' http://127.0.0.1:$${MOD_DAV_SVN_PORT}/_server_status
release of new installer/docker stack updates...
r23 timeout: 30s
interval: 60s
retries: 10
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 # ports:
# - "127.0.0.1::8090"
docker: added healthcheck for sshd and added autoheal flags to fix unhealthy containers
r65 labels:
- "autoheal=true"
release of new installer/docker stack updates...
r23 sshd:
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 extends:
service: common_base
# depends_on:
# - database
# - redis
rccontrol: fixed env flags propagation to services
r40 env_file:
- ${RC_ENV_FILE:?must-specify-rc-env-file}
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 command: [
"/usr/sbin/sshd",
"-f",
"/etc/rhodecode/sshd_config",
"-D",
"-e"
]
deploy:
# override this in .custom/docker-compose-apps.override.yaml to scale up
replicas: 1
release of new installer/docker stack updates...
r23 environment:
RC_APP_TYPE: rhodecode_sshd
SSH_BOOTSTRAP: 1
apps: ensure celery 3.X / 5.X compat in running commands
r223 SSH_ENSURE_PERMS: 1
docker: added healthcheck for sshd and added autoheal flags to fix unhealthy containers
r65 healthcheck:
# we call ssh internally, to find permission denied, if SSH is DOWN it would be connection refused
feat(ssh): allow fully custom ssh port for k8s setup
r337 test: /usr/bin/ssh -p$${RC_SSH_PORT} -o StrictHostKeyChecking=no -o PasswordAuthentication=No rhodecode@localhost true 2>&1 | grep -c 'Permission denied' > /dev/null
docker: added healthcheck for sshd and added autoheal flags to fix unhealthy containers
r65 timeout: 30s
interval: 60s
retries: 10
release of new installer/docker stack updates...
r23 # ports:
rcstack: re-architecture apps docker compose for simplicity and consistency
r169 # # 9022 is set from .env file too.
feat(ssh): allow fully custom ssh port for k8s setup
r337 # - "9022:$RC_SSH_PORT"
release of new installer/docker stack updates...
r23 labels:
docker: added healthcheck for sshd and added autoheal flags to fix unhealthy containers
r65 - "autoheal=true"
release of new installer/docker stack updates...
r23 - "traefik.enable=true"
stack: fixed ssh router to TCP to properly handle SSH trafik
r111 - "traefik.tcp.routers.sshd.entrypoints=ssh"
- "traefik.tcp.routers.sshd.rule=HostSNI(`*`)"
- "traefik.tcp.routers.sshd.service=rhodecode-ssh"
feat(ssh): allow fully custom ssh port for k8s setup
r337 - "traefik.tcp.services.rhodecode-ssh.loadbalancer.server.port=${RC_SSH_PORT}"