File size: 2,368 Bytes
3a25f97
 
 
 
 
 
 
 
 
 
 
 
 
ddf7640
 
 
3a25f97
 
ddf7640
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3a25f97
 
 
 
 
 
 
 
 
 
ddf7640
3a25f97
 
 
ddf7640
 
 
3a25f97
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 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"]