36 lines
623 B
Docker
36 lines
623 B
Docker
FROM node:22-bookworm-slim AS build
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci
|
|
|
|
COPY scripts/ ./scripts/
|
|
COPY client/ ./client/
|
|
RUN node scripts/vendor.mjs
|
|
|
|
FROM node:22-bookworm-slim AS runtime
|
|
|
|
WORKDIR /app
|
|
|
|
RUN node -e "require('node:sqlite')"
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci --omit=dev
|
|
|
|
COPY client/ ./client/
|
|
COPY server/ ./server/
|
|
COPY shared/ ./shared/
|
|
COPY --from=build /app/client/vendor/ ./client/vendor/
|
|
|
|
RUN mkdir -p /data && chown node:node /data
|
|
ENV ASSETAPP_DATA_DIR=/data
|
|
VOLUME ["/data"]
|
|
|
|
ENV PORT=8080
|
|
EXPOSE 8080
|
|
|
|
USER node
|
|
|
|
CMD ["node", "server/supervisor.mjs"]
|