66 lines
1.6 KiB
YAML
66 lines
1.6 KiB
YAML
services:
|
|
minio:
|
|
image: minio/minio:latest
|
|
command: server /data --console-address ":9001"
|
|
environment:
|
|
MINIO_ROOT_USER: minioadmin
|
|
MINIO_ROOT_PASSWORD: minioadmin
|
|
ports:
|
|
- "9000:9000" # S3 API
|
|
- "9001:9001" # Web console
|
|
volumes:
|
|
- minio-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 5
|
|
|
|
# One-shot: create the bucket and make it public-read so <img src> works.
|
|
minio-init:
|
|
image: minio/mc:latest
|
|
depends_on:
|
|
minio:
|
|
condition: service_healthy
|
|
entrypoint: >
|
|
/bin/sh -c "
|
|
mc alias set local http://minio:9000 minioadmin minioadmin &&
|
|
mc mb -p local/sop || true &&
|
|
mc anonymous set download local/sop
|
|
"
|
|
|
|
backend:
|
|
build:
|
|
context: ./sop-back
|
|
environment:
|
|
PROJECT_NAME: "Smash or Pass"
|
|
ALLOWED_ORIGINS: '["http://localhost:8080","http://localhost:5173"]'
|
|
ADMIN_ENABLED: "true"
|
|
DATABASE_URL: "sqlite:///./data/sop.db"
|
|
S3_ENDPOINT_URL: "http://minio:9000"
|
|
S3_PUBLIC_URL: "http://localhost:9000"
|
|
S3_ACCESS_KEY: "minioadmin"
|
|
S3_SECRET_KEY: "minioadmin"
|
|
S3_BUCKET: "sop"
|
|
S3_REGION: "us-east-1"
|
|
ports:
|
|
- "8000:8000"
|
|
volumes:
|
|
- backend-data:/app/data
|
|
depends_on:
|
|
- minio-init
|
|
|
|
frontend:
|
|
build:
|
|
context: ./sop-front
|
|
args:
|
|
VITE_API_BASE_URL: "http://localhost:8000"
|
|
ports:
|
|
- "8080:80"
|
|
depends_on:
|
|
- backend
|
|
|
|
volumes:
|
|
minio-data:
|
|
backend-data:
|