mirror of
https://github.com/streetwriters/notesnook.git
synced 2026-02-24 04:00:59 +01:00
33 lines
836 B
Docker
33 lines
836 B
Docker
# Build stage
|
|
FROM node:22.20.0-alpine AS build
|
|
|
|
# Install dependencies for gyp to work
|
|
RUN --mount=type=cache,target=/var/cache/apk,sharing=locked apk add --update build-base git python3 py3-setuptools
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy files
|
|
COPY . .
|
|
|
|
# Install dependencies
|
|
RUN --mount=type=cache,target=/root/.npm npm ci --ignore-scripts --prefer-offline --no-audit
|
|
|
|
# Bootstrap the project
|
|
RUN --mount=type=cache,target=/root/.npm npm run bootstrap -- --scope=themes
|
|
|
|
# Build the server
|
|
RUN npm run build:server:themes
|
|
|
|
# Production stage
|
|
FROM oven/bun:1.3.5-alpine AS production
|
|
|
|
# Install git to pull the themes repo
|
|
RUN --mount=type=cache,target=/var/cache/apk,sharing=locked apk add --update git
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy server files from previous stage
|
|
COPY --from=build /app/servers/themes/dist ./dist
|
|
|
|
CMD ["bun", "run", "dist/server.mjs"]
|