FastAPI + SQLAlchemy/Alembic + MariaDB backend with Jinja2/htmx/Alpine server-rendered frontend. Multi-user via Google OAuth, daily habit tracking, monthly/weekly history views, Web Push reminders via APScheduler, and PWA support (manifest, service worker, offline caching). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
24 lines
525 B
Docker
24 lines
525 B
Docker
FROM python:3.13-slim
|
|
|
|
ENV TZ=Asia/Seoul
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends tzdata \
|
|
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
|
|
&& echo $TZ > /etc/timezone \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
COPY pyproject.toml alembic.ini ./
|
|
COPY app ./app
|
|
COPY migrations ./migrations
|
|
COPY scripts ./scripts
|
|
|
|
RUN pip install --no-cache-dir . \
|
|
&& chmod +x scripts/docker-entrypoint.sh
|
|
|
|
EXPOSE 8000
|
|
|
|
ENTRYPOINT ["scripts/docker-entrypoint.sh"]
|