Maverick6022/dataforge
0
1# ─────────────────────────────────────────────────────────────────2# DataForge — Docker Compose3#4# Usage:5# docker compose up # build and start6# docker compose up --build # rebuild then start7# docker compose up -d # run in background8# docker compose down # stop and remove containers9# docker compose logs -f # follow live logs10#11# Access:12# http://localhost:7860 # app (frontend + API)13# http://localhost:7860/docs # API docs (Swagger)14# ─────────────────────────────────────────────────────────────────15 16services:17 dataforge:18 build:19 context: .20 dockerfile: Dockerfile21 image: dataforge:latest22 container_name: dataforge23 ports:24 - "7860:7860"25 environment:26 # Set to "production" to disable auto-reload27 - APP_ENV=production28 volumes:29 # Optional: persist uploaded files and model artefacts across restarts30 # Remove this if you want a fully ephemeral container31 - dataforge_data:/data32 restart: unless-stopped33 healthcheck:34 test: ["CMD", "python", "-c",35 "import urllib.request; urllib.request.urlopen('http://localhost:7860/health')"]36 interval: 30s37 timeout: 5s38 retries: 339 start_period: 15s40 41 # ── Dev profile: hot-reload backend, live-mount source ───────────42 dataforge-dev:43 build:44 context: .45 dockerfile: Dockerfile46 image: dataforge:latest47 container_name: dataforge-dev48 ports:49 - "7860:7860"50 environment:51 - APP_ENV=development52 volumes:53 # Mount source code for live reload during development54 - ./backend:/app/backend55 - ./frontend:/app/frontend56 command: ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860", "--reload"]57 profiles:58 - dev59 60volumes:61 dataforge_data:62 driver: local63 