Files
shiftcraft/Dockerfile
2026-04-17 23:26:01 +00:00

40 lines
753 B
Docker

# Build Stage 1
FROM node:22-alpine AS build
WORKDIR /app
RUN corepack enable
# Copy package.json and your lockfile, here we add pnpm-lock.yaml for illustration
COPY package.json pnpm-lock.yaml ./
# Install dependencies
RUN pnpm i
# Copy the project
COPY nuxt.config.ts eslint.config.mjs ./
COPY app ./app
ARG NODE_ENV=production
ARG NUXT_PUBLIC_APP_URL
ARG NUXT_PUBLIC_POCKETBASE_URL
ENV NODE_ENV=$NODE_ENV
ENV NUXT_PUBLIC_APP_URL=$NUXT_PUBLIC_APP_URL
ENV NUXT_PUBLIC_POCKETBASE_URL=$NUXT_PUBLIC_POCKETBASE_URL
# Build the project
RUN pnpm run build
# Build Stage 2
FROM node:22-alpine
WORKDIR /app
# Only `.output` folder is needed from the build stage
COPY --from=build /app/.output/ ./
EXPOSE 3000
CMD ["node", "/app/server/index.mjs"]