diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..510f030 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,25 @@ +.git +.gitignore +.DS_Store +*.log +node_modules +.pnpm-store +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.env +.env.* +!.env.example +__pycache__ +*.pyc +*.pyo +.venv +venv +.pytest_cache +.mypy_cache +coverage +.coverage +.nuxt +.output +dist +build diff --git a/Dockerfile b/Dockerfile index 2be353d..a3482c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,27 @@ -FROM node:22-alpine AS builder +FROM node:22-alpine AS deps WORKDIR /app -COPY package.json ./ -RUN npm install +COPY package.json package-lock.json ./ +RUN npm ci + +FROM deps AS builder COPY tsconfig.json ./ COPY src ./src RUN npm run build -FROM node:22-alpine +FROM deps AS runtime-deps +RUN npm prune --omit=dev + +FROM node:22-alpine AS runtime RUN apk add --no-cache curl jq WORKDIR /app COPY package.json ./ -RUN npm install --omit=dev +COPY --from=runtime-deps /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist COPY scripts ./scripts