Files
trueref/Dockerfile
2026-03-25 19:03:22 +01:00

49 lines
1.1 KiB
Docker

# ---- build stage ----
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# ---- production stage ----
FROM node:20-alpine
WORKDIR /app
# Install openssl for corporate CA certificate handling (TRUEREF-0019)
RUN apk add --no-cache openssl git
# Install all deps (includes tsx for the MCP server and drizzle-kit for migrations)
COPY package*.json ./
RUN npm ci
# Built SvelteKit app (adapter-node output)
COPY --from=builder /app/build ./build
# MCP server source
COPY --from=builder /app/src/mcp ./src/mcp
# Drizzle migrations
COPY --from=builder /app/drizzle.config.ts ./drizzle.config.ts
COPY --from=builder /app/src/lib/server/db/migrations ./src/lib/server/db/migrations
COPY --from=builder /app/tsconfig.json ./tsconfig.json
# Persistent volume for the SQLite database
RUN mkdir -p /data
VOLUME ["/data"]
ENV DATABASE_URL=/data/trueref.db
ENV HOST=0.0.0.0
ENV PORT=3000
ENV TRUEREF_API_URL=http://localhost:3000
EXPOSE 3000 3001
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["web"]