| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- FROM docker.m.daocloud.io/library/python:3.11-slim AS dependencies
- ENV PYTHONDONTWRITEBYTECODE=1 \
- PYTHONUNBUFFERED=1 \
- PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ \
- APP_DIR=/app
- WORKDIR /app
- RUN sed -i 's|deb.debian.org|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/debian.sources \
- && apt-get update \
- && apt-get install --no-install-recommends -y gcc libc6-dev libgomp1 linux-libc-dev \
- && rm -rf /var/lib/apt/lists/*
- COPY requirements.txt ./requirements.txt
- RUN pip install --no-cache-dir -r requirements.txt \
- && apt-get purge -y gcc libc6-dev linux-libc-dev \
- && apt-get autoremove -y \
- && rm -rf /var/lib/apt/lists/*
- FROM dependencies AS migrator
- COPY app/ ./app/
- COPY migrations/env.py migrations/script.py.mako ./migrations/
- COPY migrations/versions/[0-9]*.py ./migrations/versions/
- COPY alembic.ini ./alembic.ini
- CMD ["alembic", "-c", "alembic.ini", "upgrade", "head"]
- FROM dependencies AS runtime
- RUN pip uninstall -y alembic
- COPY app/ ./app/
- COPY datafactory/ ./datafactory/
- COPY wsgi.py gunicorn_config.py ./
- RUN mkdir -p /app/logs /data/upload /data/archive
- EXPOSE 5500
- CMD ["gunicorn", "--config", "gunicorn_config.py", "wsgi:application"]
|