24 lines
597 B
Docker
24 lines
597 B
Docker
|
|
# server/Dockerfile — backend (Express + ws + better-sqlite3)
|
||
|
|
FROM node:18-alpine AS build
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# workspaces root needed: shared/ is a dependency (@ttrpg/shared)
|
||
|
|
COPY package*.json ./
|
||
|
|
COPY shared/package.json ./shared/
|
||
|
|
COPY server/package.json ./server/
|
||
|
|
RUN npm install --workspaces --include-workspace-root
|
||
|
|
|
||
|
|
COPY shared/ ./shared/
|
||
|
|
COPY server/ ./server/
|
||
|
|
|
||
|
|
# better-sqlite3 builds native; rebuild for alpine musl
|
||
|
|
RUN cd server && npm rebuild better-sqlite3
|
||
|
|
|
||
|
|
ENV NODE_ENV=production
|
||
|
|
ENV PORT=4001
|
||
|
|
ENV DB_PATH=/data/tracker.sqlite
|
||
|
|
|
||
|
|
EXPOSE 4001
|
||
|
|
WORKDIR /app/server
|
||
|
|
CMD ["node", "index.js"]
|