51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
|
|
# retoor <retoor@molodetz.nl>
|
||
|
|
|
||
|
|
DEFAULT_DOCKERFILE = """# syntax=docker/dockerfile:1
|
||
|
|
FROM python:3.13-slim-bookworm
|
||
|
|
|
||
|
|
ENV PYTHONUNBUFFERED=1 \\
|
||
|
|
PYTHONDONTWRITEBYTECODE=1
|
||
|
|
|
||
|
|
RUN useradd --create-home --shell /bin/bash app
|
||
|
|
WORKDIR /app
|
||
|
|
COPY . /app
|
||
|
|
RUN chown -R app:app /app
|
||
|
|
USER app
|
||
|
|
|
||
|
|
EXPOSE 8000
|
||
|
|
CMD ["python3", "-m", "http.server", "8000", "--directory", "/app"]
|
||
|
|
"""
|
||
|
|
|
||
|
|
PLAYWRIGHT_DOCKERFILE = """# syntax=docker/dockerfile:1
|
||
|
|
FROM python:3.13-slim-bookworm AS base
|
||
|
|
|
||
|
|
ENV PYTHONUNBUFFERED=1 \\
|
||
|
|
PYTHONDONTWRITEBYTECODE=1 \\
|
||
|
|
PIP_NO_CACHE_DIR=1 \\
|
||
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1 \\
|
||
|
|
DEBIAN_FRONTEND=noninteractive \\
|
||
|
|
PLAYWRIGHT_BROWSERS_PATH=/opt/playwright
|
||
|
|
|
||
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \\
|
||
|
|
git curl ca-certificates build-essential libpq-dev \\
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
FROM base AS deps
|
||
|
|
RUN pip install \\
|
||
|
|
numpy pandas requests \\
|
||
|
|
fastapi "uvicorn[standard]" pydantic \\
|
||
|
|
sqlalchemy psycopg2-binary redis \\
|
||
|
|
httpx aiofiles python-dotenv \\
|
||
|
|
playwright \\
|
||
|
|
&& playwright install --with-deps chromium
|
||
|
|
|
||
|
|
FROM deps AS runtime
|
||
|
|
RUN useradd --create-home --shell /bin/bash app
|
||
|
|
WORKDIR /app
|
||
|
|
COPY . /app
|
||
|
|
RUN chown -R app:app /app /opt/playwright
|
||
|
|
USER app
|
||
|
|
|
||
|
|
CMD ["sleep", "infinity"]
|
||
|
|
"""
|