holocron-trask-http / Dockerfile
th3w1zard1's picture
Deploy trask-http web research from community-bots@6f6709a0116dc99200b9a9ba4cf65f3bf5a649c9
ddf7640 verified
# syntax=docker/dockerfile:1.7
# Build context: packed monorepo root (see .github/workflows/trask-http-public.yml).
FROM node:24-bookworm AS base
WORKDIR /workspace
ENV NODE_ENV=production
RUN corepack enable && corepack prepare pnpm@10.11.0 --activate
FROM base AS deps
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.base.json tsconfig.workspace.json ./
COPY packages ./packages
COPY apps/trask-http-server ./apps/trask-http-server
COPY data/ingest-worker ./data/ingest-worker
COPY scripts/trask_web_research.py scripts/trask_web_research.py
COPY scripts/trask_cache.py scripts/trask_cache.py
COPY requirements-trask-research.txt requirements-trask-research.txt
RUN pnpm install --frozen-lockfile
RUN pnpm --filter @openkotor/trask-http-server build
FROM base AS python-research
WORKDIR /workspace
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
python3 python3-pip python3-venv \
libxml2-dev libxslt1-dev gcc \
&& rm -rf /var/lib/apt/lists/*
COPY requirements-trask-research.txt /workspace/requirements-trask-research.txt
COPY scripts/trask_web_research.py /workspace/scripts/trask_web_research.py
COPY scripts/trask_cache.py /workspace/scripts/trask_cache.py
RUN python3 -m venv /workspace/.venv-trask-research \
&& /workspace/.venv-trask-research/bin/pip install --upgrade pip \
&& /workspace/.venv-trask-research/bin/pip install -r /workspace/requirements-trask-research.txt \
&& (/workspace/.venv-trask-research/bin/python -m crawl4ai install || true)
FROM base AS runtime
WORKDIR /workspace
ARG PORT=7860
ENV PORT=${PORT}
ENV TRASK_HTTP_PORT=${PORT}
ENV TRASK_WEB_ALLOW_ANONYMOUS=1
ENV TRASK_WEB_DEFAULT_USER_ID=qa-webui
ENV TRASK_PUBLIC_WEB_ORIGIN=https://openkotor.github.io
ENV TRASK_RESEARCHWIZARD_TIMEOUT_MS=900000
ENV TRASK_WEB_RESEARCH_PYTHON=/workspace/.venv-trask-research/bin/python
ENV INGEST_STATE_DIR=/workspace/data/ingest-worker
ENV TRASK_HTTP_DATA_DIR=/workspace/data/trask-http-server
COPY --from=deps /workspace /workspace
COPY --from=python-research /workspace/.venv-trask-research /workspace/.venv-trask-research
COPY --from=python-research /workspace/scripts/trask_web_research.py /workspace/scripts/trask_web_research.py
COPY --from=python-research /workspace/scripts/trask_cache.py /workspace/scripts/trask_cache.py
EXPOSE 7860
CMD ["node", "apps/trask-http-server/dist/main.js"]