##// END OF EJS Templates
release of new installer/docker stack updates...
release of new installer/docker stack updates Tons of changes to move towards new rccontrol docker stack based installer

File last commit:

r23:ffcea5dc
r23:ffcea5dc
Show More
docker-compose-services.yaml
240 lines | 5.7 KiB | text/x-yaml | YamlLexer
/ docker-compose-services.yaml
version: '3.9'
x-logging: &custom-logging
# docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
# NOTE: loki logging driver ONLY works for host type networks...
driver: loki
options:
loki-url: "http://127.0.0.1:3100/loki/api/v1/push"
#loki-url: "http://loki:3100/loki/api/v1/push"
loki-retries: "5"
loki-timeout: "1s"
loki-max-backoff: "800ms"
volumes:
# volume for redis data store
redis_data:
labels:
"keep": 1
# volume for Postgres db store
# volume for Postgres Data
pg_data:
labels:
"keep": 1
# volume for rhodecode elasticsearch
es_data:
labels:
"keep": 1
services:
channelstream:
networks:
- rhodecode_network
image: channelstream/channelstream:0.7.1
restart: always
# ports:
# - "127.0.0.1:9800:9800"
command: ["channelstream", "-i", "/etc/rhodecode/conf/channelstream.ini"]
environment:
CHANNELSTREAM_ALLOW_POSTING_FROM: 0.0.0.0
healthcheck:
test: [ "CMD", "curl", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://channelstream:8000/admin/sign_in" ]
timeout: 5s
interval: 60s
retries: 10
volumes:
- confvolume:/etc/rhodecode/conf
- logvolume:/var/log/rhodecode
logging:
*custom-logging
labels:
- "traefik.enable=false"
#- "traefik.http.routers.channelstream.entrypoints=http"
#- "traefik.http.services.channelstream.loadbalancer.server.port=9800"
profiles:
["channelstream"]
nginx:
networks:
- rhodecode_network
image: library/nginx:1.23.2
restart: always
environment:
NGINX_ENTRYPOINT_QUIET_LOGS: 1
healthcheck:
# change port 80 to 443 when only using SSL
test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "http://127.0.0.1:80/_admin/ops/ping" ]
timeout: 30s
interval: 60s
retries: 10
# depends_on:
# - channelstream
volumes:
- ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./config/nginx/http.conf:/etc/nginx/http.conf:ro
- ./config/nginx/proxy.conf:/etc/nginx/proxy.conf:ro
- logvolume:/var/log/rhodecode
- rc_datavolume:/var/opt/rhodecode_data
logging:
*custom-logging
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx.entrypoints=http"
- "traefik.http.services.nginx.loadbalancer.server.port=80"
- "traefik.http.routers.nginx.rule=Host(`${RHODECODE_HOSTNAME:?must-specify-rhodecode-hostname}`)"
elasticsearch:
networks:
- rhodecode_network
image: elasticsearch:6.8.23
environment:
- cluster.name=elasticsearch-cluster
- network.host=0.0.0.0
- bootstrap.memory_lock=true
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
healthcheck:
# change port 80 to 443 when only using SSL
test: [ "CMD", "curl", "-A", "RhodeCode-Healthcheck", "-s", "-o", "/dev/null", "-w", "'%{http_code}'", "elasticsearch:9200/_cat/health" ]
timeout: 30s
interval: 60s
retries: 10
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es_data:/usr/share/elasticsearch/data
logging:
*custom-logging
profiles:
["elasticsearch"]
redis:
networks:
- rhodecode_network
image: library/redis:7.0.5
restart: always
command:
- "redis-server"
- "/etc/redis/redis.conf"
- "--maxmemory-policy allkeys-lru"
- "--maxmemory ${RC_REDIS_MAXMEMORY}"
# ports:
# - "127.0.0.1::6379"
healthcheck:
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
interval: 60s
volumes:
- ./config/redis/redis.conf:/etc/redis/redis.conf:ro
- logvolume:/var/log/rhodecode
- redis_data:/data
profiles:
["redis"]
logging:
*custom-logging
database:
networks:
- rhodecode_network
image: library/postgres:14.6
environment:
POSTGRES_DB: ${DB_NAME:?must-specify-db-name}
POSTGRES_USER: ${DB_USER:?must-specify-db-user}
PGUSER: ${DB_USER:?must-specify-db-user}
POSTGRES_PASSWORD: ${DB_PASSWORD:?must-specify-db-password}
POSTGRES_HOST_AUTH_METHOD: md5
POSTGRES_INITDB_ARGS: "--auth-host=md5 --auth-local=md5"
restart: unless-stopped
command:
- "postgres"
- "-c"
- "log_statement=ddl"
- "-c"
- "config_file=/etc/conf.d/pg_customized.conf"
# ports:
# - "127.0.0.1::5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready", '-U', "$DB_USER"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- $PWD/config/database/pg_customized.conf:/etc/conf.d/pg_customized.conf:ro
# db dumps reverse mount
- $PWD/.custom/db_dump:/var/rc-data-dump
# save the pg_data volume
- pg_data:/var/lib/postgresql/data
- logvolume:/var/log/rhodecode
profiles:
["postgres"]
logging:
*custom-logging
database-mysql:
networks:
- rhodecode_network
image: library/mysql:8.0.31
environment:
MYSQL_DATABASE: ${DB_NAME:?must-specify-db-name}
MYSQL_USER: ${DB_USER:?must-specify-db-user}
MYSQL_PASSWORD: ${DB_PASSWORD:?must-specify-db-password}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:?must-specify-db-password}
restart: unless-stopped
# ports:
# - "127.0.0.1::3306"
volumes:
- ./config/database/mysql_customized.conf:/etc/mysql/conf.d/config-file.cnf:ro
# save the mysql_data volume
- $PWD/mysql_dir:/var/lib/mysql
- logvolume:/var/log/rhodecode
profiles:
["mysql"]
logging:
*custom-logging