107 lines
2.7 KiB
YAML
107 lines
2.7 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: copykar_postgres
|
|
restart: unless-stopped
|
|
entrypoint: ["su-exec", "postgres", "postgres"]
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
|
|
POSTGRES_DB: ${POSTGRES_DB:-copykar}
|
|
LD_PRELOAD: /usr/local/lib/libfakestat.so
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- ./monitoring/postgres/libfakestat_musl.so:/usr/local/lib/libfakestat.so:ro
|
|
- ./data/postgres:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-copykar}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: copykar_redis
|
|
restart: unless-stopped
|
|
entrypoint: ["redis-server"]
|
|
command: ["--protected-mode", "no", "--dir", "/data", "--save", "60", "1"]
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- ./data/redis:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 5
|
|
|
|
copykar:
|
|
image: copykar:latest
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: copykar_app
|
|
restart: unless-stopped
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
ports:
|
|
- "8008:8008"
|
|
env_file:
|
|
- .env
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
volumes:
|
|
- ./data/app:/app/data
|
|
- ./data/sessions:/app/sessions
|
|
- /home:/host_os/home:ro
|
|
- /projects:/host_os/projects:ro
|
|
- /run/media:/host_os/media:ro
|
|
|
|
prometheus:
|
|
build:
|
|
context: ./monitoring/prometheus
|
|
container_name: copykar_prometheus
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./data/prometheus:/prometheus
|
|
ports:
|
|
- "9090:9090"
|
|
|
|
grafana:
|
|
build:
|
|
context: ./monitoring/grafana
|
|
container_name: copykar_grafana
|
|
restart: unless-stopped
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=${GRAFANA_USER:-admin}
|
|
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin}
|
|
- GF_USERS_ALLOW_SIGN_UP=false
|
|
ports:
|
|
- "3005:3000"
|
|
volumes:
|
|
- ./data/grafana:/var/lib/grafana
|
|
depends_on:
|
|
- prometheus
|
|
|
|
pgadmin:
|
|
image: dpage/pgadmin4:latest
|
|
container_name: copykar_pgadmin
|
|
restart: unless-stopped
|
|
environment:
|
|
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-admin@copykar.com}
|
|
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
|
|
PGADMIN_CONFIG_SERVER_MODE: 'False'
|
|
ports:
|
|
- "5050:80"
|
|
volumes:
|
|
- ./data/pgadmin:/var/lib/pgadmin
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
|