Files
dashback/Dockerfile
2026-10-26 21:21:08 +00:00

46 lines
1.1 KiB
Docker

# syntax=docker/dockerfile:1
FROM node:22-bookworm-slim
# Install system libraries needed by native Node modules (better-sqlite3, canvas, sharp)
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
python3 \
make \
g++ \
libcairo2-dev \
libpango1.0-dev \
libjpeg-dev \
libgif-dev \
librsvg2-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy sibling dependencies referenced by package.json ("file:../dashdbschema", "file:../llmorbiter")
COPY dashdbschema /dashdbschema
COPY llmorbiter /llmorbiter
# Copy dashback package manifests
COPY dashback/package*.json ./
# Install all dependencies (including devDependencies required by OpenAPI live docs generator)
RUN npm install
# Copy application source code
COPY dashback/src ./src
COPY dashback/scripts ./scripts
# Set production defaults
ENV NODE_ENV=production \
HOST=0.0.0.0 \
PORT=4208 \
HTTPS_PORT=0 \
SQLITE_PATH=/app/data/dash.db \
STORAGE_DIR=/app/data/storage \
BACKUP_DIR=/app/data/backups
EXPOSE 4208
CMD ["node", "src/index.js"]