| |
| FROM python:3.11-slim AS builder |
|
|
| WORKDIR /build |
|
|
| |
| COPY requirements.txt . |
| RUN pip install --no-cache-dir --only-binary=:all: --prefix=/install -r requirements.txt && \ |
| find /install -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true && \ |
| find /install -type d -name "tests" -exec rm -rf {} + 2>/dev/null || true && \ |
| find /install -type d -name "test" -exec rm -rf {} + 2>/dev/null || true && \ |
| find /install -type d -name "*.dist-info" -exec sh -c 'rm -f "$1"/RECORD "$1"/INSTALLER' _ {} \; && \ |
| find /install -type f -name "*.pyc" -delete && \ |
| find /install -type f -name "*.pyo" -delete && \ |
| find /install -name "*.so" -exec strip --strip-unneeded {} \; 2>/dev/null || true |
|
|
| |
| FROM python:3.11-slim |
|
|
| WORKDIR /app |
|
|
| |
| RUN rm -rf /usr/share/doc/* \ |
| /usr/share/man/* \ |
| /usr/share/locale/* \ |
| /var/cache/apt/* \ |
| /var/lib/apt/lists/* \ |
| /tmp/* \ |
| /var/tmp/* |
|
|
| |
| COPY --from=builder /install /usr/local |
|
|
| |
| RUN mkdir -p /app/logs /app/data/temp/image /app/data/temp/video |
|
|
| |
| COPY app/ ./app/ |
| COPY main.py . |
|
|
| |
| COPY docker-entrypoint.sh /usr/local/bin/ |
| RUN chmod +x /usr/local/bin/docker-entrypoint.sh |
|
|
| |
| ENV PYTHONDONTWRITEBYTECODE=1 \ |
| PYTHONUNBUFFERED=1 |
|
|
| EXPOSE 8000 |
|
|
| |
| ENTRYPOINT ["docker-entrypoint.sh"] |
|
|
| |
| CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |
|
|