Files
notesnook/servers/themes/Dockerfile
2025-12-31 11:53:22 +05:00

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