# syntax = docker/dockerfile:1 FROM node:22-slim AS base ARG PORT=3005 ARG COMPANY_NAME ARG TWITTER_CREATOR ARG TWITTER_SITE ARG SITE_NAME ARG SHOPIFY_REVALIDATION_SECRET ARG SHOPIFY_STOREFRONT_ACCESS_TOKEN ARG SHOPIFY_STORE_DOMAIN ENV PORT=${PORT} ENV COMPANY_NAME=${COMPANY_NAME} ENV TWITTER_CREATOR=${TWITTER_CREATOR} ENV TWITTER_SITE=${TWITTER_SITE} ENV SITE_NAME=${SITE_NAME} ENV SHOPIFY_REVALIDATION_SECRET=${SHOPIFY_REVALIDATION_SECRET} ENV SHOPIFY_STOREFRONT_ACCESS_TOKEN=${SHOPIFY_STOREFRONT_ACCESS_TOKEN} ENV SHOPIFY_STORE_DOMAIN=${SHOPIFY_STORE_DOMAIN} ENV NEXT_TELEMETRY_DISABLED=1 WORKDIR /app # Dependencies FROM base AS dependencies COPY package.json package-lock.json ./ RUN npm ci # Build FROM base AS build COPY --from=dependencies /app/node_modules ./node_modules COPY . . #Should be set to npm run build. RUN npm run build # Run FROM base AS run ENV NODE_ENV=production ENV PORT=$PORT RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs RUN mkdir .next RUN chown nextjs:nodejs .next COPY --from=build /app/public ./public COPY --from=build --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=build --chown=nextjs:nodejs /app/.next/static ./.next/static USER nextjs EXPOSE $PORT ENV HOSTNAME="0.0.0.0" CMD ["node", "server.js"]