# syntax=docker/dockerfile:1 FROM python:3.11-slim AS base ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=1 WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends build-essential libpq-dev postgresql-client \ && rm -rf /var/lib/apt/lists/* COPY backend/requirements/base.txt ./backend/requirements/base.txt RUN pip install --upgrade pip \ && pip install -r backend/requirements/base.txt COPY scripts ./scripts COPY .env.example ./.env.example COPY .env* ./ COPY backend ./backend EXPOSE 8000 # Initialize database with demo data if INIT_DEMO_DB is set CMD ["sh", "-c", "\ export PYTHONPATH=/app/backend && \ echo 'Waiting for database...' && \ while ! pg_isready -h db -p 5432 -U railgame >/dev/null 2>&1; do sleep 1; done && \ echo 'Database is ready!' && \ if [ \"$INIT_DEMO_DB\" = \"true\" ]; then python scripts/init_demo_db.py; fi && \ uvicorn backend.app.main:app --host 0.0.0.0 --port 8000"]