feat: add Dockerfile and docker-compose for containerized deployment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 09:15:01 -06:00
parent df7e86f2ed
commit 835ab197eb
2 changed files with 46 additions and 0 deletions

23
Dockerfile Normal file
View File

@@ -0,0 +1,23 @@
# -- Build stage --
FROM python:3.12-slim AS base
# Prevent Python from writing .pyc files and enable unbuffered output
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
WORKDIR /app
# Install dependencies first (layer caching)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY app/ ./app/
COPY config/ ./config/
# Create data directory for SQLite
RUN mkdir -p /app/data
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

23
docker-compose.yaml Normal file
View File

@@ -0,0 +1,23 @@
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: sneakyswole
ports:
- "8000:8000"
volumes:
- sneakyswole-data:/app/data
env_file:
- .env
restart: unless-stopped
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
volumes:
sneakyswole-data:
driver: local