diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..56123d0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM oven/bun:1 AS build +WORKDIR /app +COPY package.json bun.lock* ./ +RUN bun install --frozen-lockfile +COPY . . +ENV NODE_ENV=production +RUN bun run build + +# Nitro's node_modules layout (e.g. ipx → ofetch) follows Node resolution; Bun +# does not resolve sibling packages the same way and crashes at runtime. +FROM node:20-bookworm-slim +WORKDIR /app +COPY --from=build /app/.output/ ./ +ENV NODE_ENV=production +ENV PORT=3000 +ENV HOST=0.0.0.0 +EXPOSE 3000 +CMD ["node", "server/index.mjs"] diff --git a/bun.lock b/bun.lock index 7157c4a..a1f7c35 100644 --- a/bun.lock +++ b/bun.lock @@ -28,6 +28,7 @@ "mime": "^2.6.0", "motion-v": "^1.7.4", "nuxt": "^3.10.1", + "ofetch": "^1.5.1", "radix-vue": "^1.9.12", "reka-ui": "^2.8.0", "serve-static": "^1.15.0", diff --git a/package.json b/package.json index c2995ae..58e3f95 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "mime": "^2.6.0", "motion-v": "^1.7.4", "nuxt": "^3.10.1", + "ofetch": "^1.5.1", "radix-vue": "^1.9.12", "reka-ui": "^2.8.0", "serve-static": "^1.15.0",