34 lines
874 B
Docker
34 lines
874 B
Docker
FROM python:3.11-slim
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PYTHONPATH=/app
|
|
|
|
WORKDIR /app
|
|
|
|
COPY pyproject.toml /app/pyproject.toml
|
|
RUN pip install --no-cache-dir \
|
|
"sqlalchemy>=2.0" \
|
|
"psycopg[binary]>=3.1" \
|
|
"pydantic>=2.7" \
|
|
"pydantic-settings>=2.2" \
|
|
"httpx>=0.27" \
|
|
"websocket-client>=1.8"
|
|
|
|
COPY src /app/src
|
|
COPY scripts /app/scripts
|
|
COPY migrations /app/migrations
|
|
COPY data /app/data
|
|
COPY docs /app/docs
|
|
COPY SESSION.md /app/SESSION.md
|
|
COPY TASKS.md /app/TASKS.md
|
|
COPY src/web /app/src/web
|
|
COPY .env.example /app/.env.example
|
|
COPY README.md /app/README.md
|
|
|
|
EXPOSE 8000
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD python -c "from urllib.request import urlopen; import sys; sys.exit(0 if urlopen('http://127.0.0.1:8000/health').status == 200 else 1)"
|
|
|
|
CMD ["python", "scripts/run_api_server.py"]
|