FROM node:lts AS core WORKDIR /opt/app FROM core AS base #COPY package.json package-lock.json ./ #workaround: https://github.com/npm/cli/issues/4828 RUN apt update && apt upgrade -y RUN npm install -g npm@latest RUN npm install -g pnpm COPY package.json package-lock.json .yarnrc.yml ./ #FROM base AS prod-deps #RUN pnpm install --fix-lockfile #RUN pnpm install --lockfile-only #RUN pnpm install --prod #RUN npm install --omit=dev FROM base AS build-deps RUN pnpm install --fix-lockfile RUN pnpm install --lockfile-only RUN pnpm install #RUN npm install FROM build-deps AS copy COPY . . FROM copy AS build RUN pnpm run astro build # RUN npm run build #RUN npm run-script astro build FROM base AS runtime #COPY --from=prod-deps /opt/app/node_modules ./node_modules COPY --from=build-deps /opt/app/node_modules ./node_modules COPY --from=copy /opt/app . COPY --from=build /opt/app/dist ./dist ENV HOST=0.0.0.0 ENV PORT=4321 ENV WEBHOOK_PORT=3210 EXPOSE 4321 3210 CMD pnpm run server #CMD bash