diff --git a/Dockerfile b/Dockerfile index d2242ac..5962bdf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,10 +18,11 @@ RUN cd apps/api && npx prisma generate RUN pnpm --filter @kooltab/api run build RUN pnpm --filter @kooltab/dashboard run build -# ---- Deploy the API with pnpm deploy ----- +# ---- Production API image ---- FROM node:20-alpine AS api RUN npm install -g pnpm WORKDIR /app + COPY --from=builder /app/apps/api/dist ./dist COPY --from=builder /app/apps/api/prisma ./prisma COPY --from=builder /app/apps/api/package.json ./ @@ -29,24 +30,26 @@ COPY --from=builder /app/pnpm-lock.yaml ./ COPY --from=builder /app/pnpm-workspace.yaml ./ COPY --from=builder /app/packages/shared/package.json ./packages/shared/ COPY --from=builder /app/packages/shared/dist ./packages/shared/dist/ -RUN pnpm install --frozen-lockfile --prod +RUN pnpm install --prod EXPOSE 3001 CMD ["sh", "-c", "npx prisma migrate deploy && node dist/main.js"] -# ---- Deploy the Dashboard with pnpm deploy ----- +# ---- Production Dashboard image ---- FROM node:20-alpine AS dashboard RUN npm install -g pnpm WORKDIR /app + COPY --from=builder /app/apps/dashboard/.next ./.next -COPY --from=builder /app/apps/dashboard/public ./public 2>/dev/null || mkdir -p public COPY --from=builder /app/apps/dashboard/package.json ./ COPY --from=builder /app/apps/dashboard/next.config.js ./ +RUN mkdir -p public + COPY --from=builder /app/pnpm-lock.yaml ./ COPY --from=builder /app/pnpm-workspace.yaml ./ COPY --from=builder /app/packages/shared/package.json ./packages/shared/ COPY --from=builder /app/packages/shared/dist ./packages/shared/dist/ -RUN pnpm install --frozen-lockfile --prod +RUN pnpm install --prod EXPOSE 3000 CMD ["node", "node_modules/next/dist/bin/next", "start"] \ No newline at end of file