Files
ManuAgent/sandbox/Dockerfile
2026-08-29 13:32:57 +08:00

42 lines
1.5 KiB
Docker

FROM node:22-bookworm-slim AS node
FROM eclipse-temurin:21-jre-jammy AS java
FROM python:3.12-slim-bookworm
COPY --from=node /usr/local /usr/local
ENV JAVA_HOME=/opt/java/openjdk \
PATH=/opt/java/openjdk/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin \
NODE_PATH=/opt/agent-runtime/node_modules \
PLAYWRIGHT_BROWSERS_PATH=/opt/agent-runtime/ms-playwright \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
WORKDIR /opt/agent-runtime
COPY package.json package-lock.json ./
RUN npm ci --omit=dev \
&& pip install --no-cache-dir \
defusedxml lxml "markitdown[pptx]" openpyxl pandas xlrd python-pptx pillow six \
pypdf pdfplumber reportlab pdf2image pytesseract pypdfium2
COPY --from=java /opt/java/openjdk /opt/java/openjdk
RUN ln -s /opt/java/openjdk/bin/java /usr/local/bin/java \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
adduser ca-certificates file findutils fonts-noto-cjk gawk git grep \
libreoffice-calc libreoffice-impress libreoffice-writer \
pandoc poppler-utils qpdf ripgrep sed tesseract-ocr tesseract-ocr-chi-sim unzip zip \
&& npx playwright install --with-deps chromium \
&& /usr/sbin/adduser --disabled-password --gecos "" --uid 10001 agent \
&& mkdir -p /workspace \
&& chown agent:agent /workspace \
&& rm -rf /var/lib/apt/lists/*
COPY fonts-local.conf /etc/fonts/local.conf
RUN fc-cache -f
COPY --chown=agent:agent document_view.py ./
USER agent
WORKDIR /workspace
CMD ["sleep", "infinity"]