feat: Restored requirements.txt and Dockerfile to project root. Project is now self-contained for Docker builds.

This commit is contained in:
Scott Idem
2026-03-10 15:23:13 -04:00
parent e41a6da575
commit 7a6ccc2520
2 changed files with 91 additions and 0 deletions

26
Dockerfile Normal file
View File

@@ -0,0 +1,26 @@
# Aether API - FastAPI + Gunicorn
# Using tiangolo's optimized FastAPI image
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.11
LABEL maintainer="Scott Idem <scott.idem@oneskyit.com>"
WORKDIR /srv/aether_api
# Install OS dependencies for image processing and utilities
RUN apt-get update; \
apt-get install -y \
imagemagick ffmpeg curl poppler-utils \
; \
rm -rf /var/lib/apt/lists/*;
# Install Python requirements
# This file is now located in the project root
COPY requirements.txt /tmp/requirements.txt
RUN pip install --no-cache-dir -r /tmp/requirements.txt
# Create a reference of actual installed versions
RUN pip freeze >> /tmp/aether_fastapi_requirements_current.txt
# The application source is mounted as a volume in docker-compose.yml
# for real-time development, but we set the default command here.
CMD ["gunicorn", "--conf", "/conf/gunicorn_fastapi_conf.py"]

65
requirements.txt Normal file
View File

@@ -0,0 +1,65 @@
# Aether API - Python Requirements
# Managed via Aether Docker Orchestration (Unified V3)
aiofiles
argon2-cffi
argon2-cffi-bindings
# asgiref
# async-timeout
# baize
charset-normalizer
click
Deprecated
dnspython
email-validator
et-xmlfile
fastapi==0.115.5
# greenlet
gunicorn
h11
html2text
httpcore
httptools
httpx
idna
# itsdangerous
# Jinja2
MarkupSafe
mysqlclient
numpy
openpyxl
orjson
# packaging
pandas
passlib
pdf2image
Pillow
pycparser
pydantic==1.*
PyJWT
pyparsing
python-dateutil
# python-dotenv
python-multipart
pytz
PyYAML
qrcode
redis[hiredis]
requests
rfc3986
# six
sniffio
SQLAlchemy==1.4.52
starlette
stripe
typing_extensions
ujson
urllib3
uvicorn
uvloop
Wand
watchfiles
# watchgod
websockets
wrapt
xlrd