mirror of
https://github.com/seerr-team/seerr.git
synced 2026-04-17 13:58:24 -04:00
74 lines
1.9 KiB
Docker
74 lines
1.9 KiB
Docker
FROM node:22.22.1-alpine3.22@sha256:9f96f09f127f06feaff1e7faa4a34a3020cf5c1138c988782e59959641facabe AS base
|
|
ARG SOURCE_DATE_EPOCH
|
|
ARG TARGETPLATFORM
|
|
ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64}
|
|
|
|
ENV PNPM_HOME="/pnpm"
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
|
RUN corepack enable
|
|
|
|
COPY . ./app
|
|
WORKDIR /app
|
|
|
|
FROM base AS prod-deps
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store CI=true pnpm install --prod --frozen-lockfile --
|
|
|
|
RUN du -shL ./node_modules/.pnpm/* | grep '[0-9]M.*' | grep 'linux-x64-gnu@' | awk '{print $2}' | xargs rm -rf
|
|
RUN if [ -d node_modules/.pnpm ]; then \
|
|
find node_modules/.pnpm -type d \( \
|
|
-path "*ace-builds/src-noconflict" -o \
|
|
-path "*ace-builds/src" -o \
|
|
-path "*ace-builds/src-min" -o \
|
|
-path "*country-flag-icons/react" -o \
|
|
-path "*country-flag-icons/string" -o \
|
|
-path "*country-flag-icons/1x1" -o \
|
|
-path "*@heroicons/react/16" \
|
|
\) -exec rm -rf {} + || true; \
|
|
fi
|
|
# -path "*country-flag-icons/modules" -o \
|
|
|
|
FROM base AS build
|
|
|
|
ARG COMMIT_TAG
|
|
ENV COMMIT_TAG=${COMMIT_TAG:-develop}
|
|
|
|
RUN \
|
|
case "${TARGETPLATFORM}" in \
|
|
'linux/arm64' | 'linux/arm/v7') \
|
|
apk update && \
|
|
apk add --no-cache python3 make g++ gcc libc6-compat bash && \
|
|
npm install --global node-gyp \
|
|
;; \
|
|
esac
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store CYPRESS_INSTALL_BINARY=0 pnpm install --frozen-lockfile
|
|
|
|
RUN pnpm build
|
|
|
|
RUN rm -rf .next/cache
|
|
|
|
FROM node:22.22.1-alpine3.22@sha256:9f96f09f127f06feaff1e7faa4a34a3020cf5c1138c988782e59959641facabe
|
|
ARG SOURCE_DATE_EPOCH
|
|
ARG COMMIT_TAG
|
|
ENV NODE_ENV=production
|
|
ENV COMMIT_TAG=${COMMIT_TAG}
|
|
|
|
RUN apk add --no-cache tzdata
|
|
|
|
USER node:node
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --chown=node:node . .
|
|
COPY --chown=node:node --from=prod-deps /app/node_modules ./node_modules
|
|
COPY --chown=node:node --from=build /app/.next ./.next
|
|
COPY --chown=node:node --from=build /app/dist ./dist
|
|
|
|
RUN touch config/DOCKER && \
|
|
echo "{\"commitTag\": \"${COMMIT_TAG}\"}" > committag.json
|
|
|
|
EXPOSE 5055
|
|
|
|
CMD [ "npm", "start" ]
|