Coves frontend - a photon fork
at main 39 lines 937 B view raw
1# Base stage for both Bun and Node.js 2FROM alpine:3.14 AS base 3WORKDIR /app 4COPY package.json . 5 6# Bun stage 7FROM oven/bun:1.2.9-alpine AS bun-builder 8WORKDIR /app 9COPY --from=base /app/package.json . 10COPY . . 11RUN bun install 12RUN ADAPTER=bun bun run build 13 14# Node.js stage 15FROM node:20-alpine AS node-builder 16WORKDIR /app 17COPY --from=base /app/package.json . 18COPY . . 19RUN npm install --no-lockfile 20RUN ADAPTER=node npm run build 21 22# Final Node.js image 23FROM node:20-alpine AS node 24USER node 25WORKDIR /app 26COPY --from=node-builder /app/build /app/build 27COPY --from=node-builder /app/node_modules /app/node_modules 28COPY --from=node-builder /app/package.json /app/package.json 29EXPOSE 3000 30CMD ["node", "build/index.js"] 31 32# Final Bun image 33FROM oven/bun:1.2.9-alpine AS bun 34WORKDIR /app 35COPY --from=bun-builder /app/build /app/build 36COPY --from=bun-builder /app/node_modules /app/node_modules 37EXPOSE 3000 38USER bun 39CMD ["bun", "build/index.js"]