| | |
| | 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"] |
| |
|