الملفات
back_end_oudelaa/Dockerfile

40 أسطر
837 B
Docker

FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV VIDEO_PROCESSING_FFMPEG_PATH=/usr/bin/ffmpeg
ENV NODE_OPTIONS=--enable-source-maps
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.edge.kernel.org/g' /etc/apk/repositories \
&& apk update \
&& apk add --no-cache ffmpeg tini
COPY package*.json ./
RUN npm ci --omit=dev \
&& npm cache clean --force
COPY --from=builder --chown=node:node /app/dist ./dist
RUN mkdir -p /app/uploads \
&& chown -R node:node /app/uploads
USER node
EXPOSE 4000
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
CMD wget -q -O /dev/null http://127.0.0.1:4000/api/v1/health || exit 1
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["node", "dist/main.js"]