diff --git a/Dockerfile b/Dockerfile index 46f4f48..e240b5f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,48 +1,19 @@ -## INIT STEP -# Install dependencies only when needed -FROM node:18-alpine AS deps - -RUN apk add --no-cache libc6-compat -WORKDIR /app - -# Copy the files needed to install deps -COPY package.json yarn.lock ./ -RUN yarn add sharp -RUN yarn install --frozen-lockfile - -## BUILD STEP -# Rebuild the source code only when needed -FROM node:18-alpine AS builder +FROM node:20 as build WORKDIR /app -# Copy node_modules installed by the deps step -COPY --from=deps /app/node_modules ./node_modules +COPY . ./ +RUN yarn install -COPY . . - -RUN mkdir /app/private -RUN echo '{"token": ""}' > /app/private/portainer_api_secret.json RUN yarn build -## RUN STEP -FROM node:18-alpine AS runner -LABEL author="neshura@neshweb.net" +FROM node:20-alpine + WORKDIR /app +COPY --from=build /app . ENV NODE_ENV production -COPY --from=builder /app/public ./public -COPY --from=builder /app/node_modules ./node_modules - -# Automatically leverage output traces to reduce image size -# https://nextjs.org/docs/advanced-features/output-file-tracing -COPY --from=builder /app/.next/standalone ./ -COPY --from=builder /app/.next/static ./.next/static - -# expose port 3000 -ENV PORT 3000 -EXPOSE 3000 - -CMD [ "yarn", "start" ] \ No newline at end of file +EXPOSE 8000 +CMD ["yarn", "preview"] \ No newline at end of file