diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8d67a86 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.DS_Store +node_modules +dist diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..55541f9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM node:lts-alpine AS base +RUN npm i -g pnpm +WORKDIR /app +COPY package.json pnpm-lock.yaml ./ + +FROM base as prod-deps +RUN pnpm install -P + +FROM base as build-deps +RUN pnpm install + +FROM build-deps as build +COPY . . +RUN pnpm run build + + +FROM base as runtime +COPY --from=prod-deps /app/node_modules . +COPY --from=build /app/dist ./dist + +ENV HOST=0.0.0.0 +ENV PORT=4321 +EXPOSE 4321 +CMD node ./dist/server/entry.mjs diff --git a/package-lock.json b/package-lock.json index c83b6f6..0b7f558 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,8 +23,10 @@ "npm-watch": "^0.11.0", "reading-time": "^1.5.0", "rollup": "^3.29.4", - "sass": "^1.68.0", - "typescript": "^5.2.2" + "sass": "^1.68.0" + }, + "devDependencies": { + "typescript": "^5.4.5" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index f2ceaf5..4dbe028 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,9 @@ "npm-watch": "^0.11.0", "reading-time": "^1.5.0", "rollup": "^3.29.4", - "sass": "^1.68.0", - "typescript": "^5.2.2" + "sass": "^1.68.0" + }, + "devDependencies": { + "typescript": "^5.4.5" } }