40 lines
753 B
Docker
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"]
|