diff --git a/Dockerfile b/Dockerfile index ad62480..1e4d0a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,14 @@ COPY . . RUN npm run prisma:generate RUN npm run build +FROM base AS prod-deps +COPY package.json package-lock.json ./ +COPY client/package.json client/package.json +COPY server/package.json server/package.json +COPY shared/package.json shared/package.json +RUN npm ci --omit=dev +RUN test -x /app/server/node_modules/.bin/prisma + FROM node:${NODE_VERSION}-bookworm-slim AS runtime WORKDIR /app @@ -64,17 +72,16 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ xdg-utils \ && rm -rf /var/lib/apt/lists/* -COPY package.json package-lock.json ./ -COPY client/package.json client/package.json -COPY server/package.json server/package.json -COPY shared/package.json shared/package.json -RUN npm ci --omit=dev - +COPY --from=prod-deps /app/node_modules /app/node_modules +COPY --from=prod-deps /app/server/node_modules /app/server/node_modules COPY --from=build /app/client/dist /app/client/dist COPY --from=build /app/server/dist /app/server/dist COPY --from=build /app/shared/dist /app/shared/dist +COPY --from=build /app/server/package.json /app/server/package.json +COPY --from=build /app/shared/package.json /app/shared/package.json COPY --from=build /app/server/prisma /app/server/prisma COPY --from=build /app/docker-entrypoint.sh /app/docker-entrypoint.sh +COPY package.json package-lock.json ./ COPY README.md INSTRUCTIONS.md STRUCTURE.md ROADMAP.md UNRAID.md ./ RUN chmod +x /app/docker-entrypoint.sh diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 4e92d38..873fcfd 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -4,8 +4,7 @@ set -eu mkdir -p /app/data/prisma /app/data/uploads echo "Applying Prisma migrations..." -npx prisma migrate deploy --schema /app/server/prisma/schema.prisma +/app/server/node_modules/.bin/prisma migrate deploy --schema /app/server/prisma/schema.prisma echo "Starting MRP Codex..." exec node /app/server/dist/server.js -