32 lines
1 KiB
Docker
32 lines
1 KiB
Docker
# Dockerfile for Dereth Tracker application
|
|
FROM python:3.12-slim
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Upgrade pip and install Python dependencies
|
|
RUN python -m pip install --upgrade pip && \
|
|
pip install --no-cache-dir fastapi uvicorn pydantic websockets databases[postgresql] sqlalchemy alembic psycopg2-binary
|
|
|
|
# Copy application code
|
|
COPY static/ /app/static/
|
|
COPY main.py /app/main.py
|
|
COPY db.py /app/db.py
|
|
COPY db_async.py /app/db_async.py
|
|
COPY alembic.ini /app/alembic.ini
|
|
COPY alembic/ /app/alembic/
|
|
COPY Dockerfile /Dockerfile
|
|
# Expose the application port
|
|
EXPOSE 8765
|
|
|
|
# Default environment variables (override as needed)
|
|
ENV DATABASE_URL=postgresql://postgres:password@db:5432/dereth \
|
|
DB_MAX_SIZE_MB=2048 \
|
|
DB_RETENTION_DAYS=7 \
|
|
DB_MAX_SQL_LENGTH=1000000000 \
|
|
DB_MAX_SQL_VARIABLES=32766 \
|
|
DB_WAL_AUTOCHECKPOINT_PAGES=1000 \
|
|
SHARED_SECRET=your_shared_secret
|
|
|
|
# Run the FastAPI application with Uvicorn
|
|
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8765", "--reload", "--workers", "1"]
|