Initial marker-api benchmark setup: Containerfile, app.py, convert_both.py, compare_conversions.py
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# ===== containerfile (podman & docker) for marker-api on powermac =====
|
||||
#
|
||||
# Targets 2x AMD Vega 20 (GFX906) with ROCm using gfx906-patched PyTorch.
|
||||
# deepseek-ocr and GPT services are on the same host at :8082 / :8080.
|
||||
|
||||
FROM mixa3607/pytorch-gfx906:v2.7.1-rocm-6.3.3
|
||||
|
||||
# install system deps & remove system-installed python3-blinker to avoid pip upgrade conflicts
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
curl ca-certificates tini procps git gcc g++ zlib1g-dev libjpeg-dev \
|
||||
libpango-1.0-0 libharfbuzz0b libpangoft2-1.0-0 && \
|
||||
apt-get remove -y python3-blinker || true && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# ---- runtime ----
|
||||
RUN groupadd -r marker && (groupadd -r render || true) && (groupadd -r video || true) && useradd -r -g marker -G render,video marker && \
|
||||
mkdir -p /app/conversion_results /app/uploads /app/.cache && \
|
||||
chown -R marker:marker /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# ---- deps ----
|
||||
COPY marker/ /app/marker/
|
||||
|
||||
# We use --break-system-packages and make sure we do NOT use --ignore-installed so that pre-installed
|
||||
# gfx906 patched torch, torchvision, and torchaudio are preserved and NOT overwritten by PyPI releases.
|
||||
RUN pip install --no-cache-dir --break-system-packages -e "/app/marker[full]" && \
|
||||
pip install --no-cache-dir --break-system-packages flask gunicorn
|
||||
|
||||
# ---- font: download GoNotoCurrent-Regular.ttf at build time ----
|
||||
RUN mkdir -p /app/marker/static/fonts && \
|
||||
curl -sL -o /app/marker/static/fonts/GoNotoCurrent-Regular.ttf \
|
||||
"https://models.datalab.to/artifacts/GoNotoCurrent-Regular.ttf" && \
|
||||
chown marker:marker /app/marker/static/fonts/GoNotoCurrent-Regular.ttf
|
||||
|
||||
# ---- final image ----
|
||||
COPY app.py /app/
|
||||
COPY gunicorn.conf.py /app/
|
||||
COPY entrypoint.sh /app/entrypoint.sh
|
||||
|
||||
RUN chmod +x /app/entrypoint.sh
|
||||
|
||||
ENV \
|
||||
HOME=/app \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
MARKER_OUTPUT_DIR=/app/conversion_results \
|
||||
UPLOAD_DIR=/app/uploads \
|
||||
OLLAMA_HOST=http://localhost:8082 \
|
||||
DEESEEK_OCR_MODEL=deepseek-ocr \
|
||||
AMD_COMPUTE=true \
|
||||
TORCH_DEVICE= \
|
||||
MODEL_DTYPE=float32 \
|
||||
PORT=8000 \
|
||||
HOST=0.0.0.0 \
|
||||
LLM_SERVICE=marker.services.openai.OpenAIService \
|
||||
USE_LLM=false \
|
||||
OPENAI_BASE_URL=http://localhost:8082/v1 \
|
||||
OPENAI_MODEL= \
|
||||
GUNICORN_WORKERS=1
|
||||
|
||||
USER marker
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||
CMD ["gunicorn", "-c", "gunicorn.conf.py", "app:app_instance"]
|
||||
Reference in New Issue
Block a user