Files
ttrpg-initiative-tracker/server/Dockerfile
T

24 lines
597 B
Docker
Raw Normal View History

# 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"]