77 lines
1.8 KiB
YAML
77 lines
1.8 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
traefik:
|
|
image: traefik:v2.10
|
|
volumes:
|
|
- ./traefik.yml:/etc/traefik/traefik.yml:ro
|
|
- ./dynamic.yml:/etc/traefik/dynamic.yml:ro
|
|
ports:
|
|
- "80:80"
|
|
- "8080:8080"
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
restart: always
|
|
command: npm run dev
|
|
environment:
|
|
- DATABASE_URL=postgresql://postgres:postgres@db:5432/temfut?schema=public
|
|
- NEXTAUTH_URL=http://localhost
|
|
- NEXTAUTH_SECRET=changeme
|
|
- SKIP_ENV_VALIDATION=true
|
|
- MINIO_ENDPOINT=minio
|
|
- MINIO_PORT=9000
|
|
- MINIO_ACCESS_KEY=temfut_admin
|
|
- MINIO_SECRET_KEY=temfut_secret_2026
|
|
- MINIO_BUCKET=temfut
|
|
- MINIO_USE_SSL=false
|
|
volumes:
|
|
- ./src:/app/src
|
|
- ./public:/app/public
|
|
- ./prisma:/app/prisma
|
|
- ./next.config.ts:/app/next.config.ts
|
|
- ./tsconfig.json:/app/tsconfig.json
|
|
- ./package.json:/app/package.json
|
|
- ./.env:/app/.env
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
minio:
|
|
condition: service_started
|
|
|
|
minio:
|
|
image: minio/minio
|
|
restart: always
|
|
command: server /data --console-address ":9001"
|
|
environment:
|
|
MINIO_ROOT_USER: temfut_admin
|
|
MINIO_ROOT_PASSWORD: temfut_secret_2026
|
|
volumes:
|
|
- minio-data:/data
|
|
ports:
|
|
- "9000:9000"
|
|
- "9001:9001"
|
|
|
|
db:
|
|
image: postgres:15-alpine
|
|
restart: always
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: temfut
|
|
volumes:
|
|
- db-data:/var/lib/postgresql/data
|
|
ports:
|
|
- "5432:5432"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "pg_isready -U postgres -d temfut" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
db-data:
|
|
minio-data:
|