WORKDIR /app
COPY src ./src
COPY package.json .
COPY package-lock.json .
COPY . .wasp/build
COPY sdk .wasp/out/sdk
RUN npm install && cd .wasp/build/server && npm install
COPY db/schema.prisma .wasp/build/db/
RUN cd .wasp/build/server && npx prisma generate --schema='../db/schema.prisma'
RUN cd .wasp/build/server && npm run bundle
FROM base AS server-production
RUN apt-get update && apt-get install -y python3 && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN npm install -g pm2
ENV NODE_ENV production
WORKDIR /app
COPY --from=server-builder /app/node_modules ./node_modules
COPY --from=server-builder /app/.wasp/build/server/node_modules .wasp/build/server/node_modules
COPY --from=server-builder /app/.wasp/build/server/bundle .wasp/build/server/bundle
COPY --from=server-builder /app/.wasp/build/server/package*.json .wasp/build/server/
COPY ./scripts/utils/generate-letsencrypt-ssl.sh /app/docker/prod/scripts/utils/
RUN chmod +x /app/docker/prod/scripts/utils/generate-letsencrypt-ssl.sh
COPY db/ .wasp/build/db/
EXPOSE 3001
WORKDIR /app/.wasp/build/server
ENTRYPOINT ["pm2-runtime", "npm", "--", "run", "start-production"]
WORKDIR /app
COPY src ./src
COPY package.json .
COPY package-lock.json .
COPY . .wasp/build
COPY sdk .wasp/out/sdk
RUN npm install && cd .wasp/build/server && npm install
COPY db/schema.prisma .wasp/build/db/
RUN cd .wasp/build/server && npx prisma generate --schema='../db/schema.prisma'
RUN cd .wasp/build/server && npm run bundle
FROM base AS server-production
RUN apt-get update && apt-get install -y python3 && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN npm install -g pm2
ENV NODE_ENV production
WORKDIR /app
COPY --from=server-builder /app/node_modules ./node_modules
COPY --from=server-builder /app/.wasp/build/server/node_modules .wasp/build/server/node_modules
COPY --from=server-builder /app/.wasp/build/server/bundle .wasp/build/server/bundle
COPY --from=server-builder /app/.wasp/build/server/package*.json .wasp/build/server/
COPY ./scripts/utils/generate-letsencrypt-ssl.sh /app/docker/prod/scripts/utils/
RUN chmod +x /app/docker/prod/scripts/utils/generate-letsencrypt-ssl.sh
COPY db/ .wasp/build/db/
EXPOSE 3001
WORKDIR /app/.wasp/build/server
ENTRYPOINT ["pm2-runtime", "npm", "--", "run", "start-production"]