diff --git a/Dockerfile b/Dockerfile index 3ff374d..f29dc9a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,22 @@ -FROM node:23-slim AS base +FROM node:20-slim -ENV PNPM_HOME="/pnpm" -ENV PATH="$PNPM_HOME:$PATH" - -RUN corepack enable \ - && corepack prepare pnpm@9.15.0 --activate - -RUN apt-get update \ - && apt-get install -y openssl fontconfig \ - && fc-cache -f -v \ - && rm -rf /var/lib/apt/lists/* +RUN apt-get update -y \ + && apt-get install -y openssl \ + && npm install -g pnpm \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* WORKDIR /app + +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile + COPY . . -FROM base AS build -RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ - pnpm install --frozen-lockfile -RUN pnpm exec prisma generate +RUN pnpm prisma generate RUN pnpm run build -FROM base AS deps -RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ - pnpm install --prod --frozen-lockfile +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh -FROM node:23-slim AS prod -ENV NODE_ENV=production -WORKDIR /app - -COPY --from=deps /app/node_modules /app/node_modules -COPY --from=build /app/dist /app/dist -COPY --from=build /app/prisma /app/prisma -COPY --from=build /app/static /app/static -COPY entrypoint.sh . - -RUN chmod +x ./entrypoint.sh -ENTRYPOINT ["./entrypoint.sh"] +ENTRYPOINT ["/entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh index df5f60f..4d9a5e6 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,8 +1,4 @@ #!/bin/sh -set -e -echo "Running prisma migrations..." -npx prisma migrate deploy - -echo "Starting server..." -node ./dist/app.js +pnpm prisma migrate deploy +pnpm run start