Evo / Dockerfile
usofn8n's picture
Clean Dockerfile: remove missing folders, add prisma generate
c0236be
# Build stage
FROM node:20-alpine AS builder
# Install build tools
RUN apk update && apk add --no-cache git bash openssl ffmpeg tzdata dos2unix
WORKDIR /evolution
# Copy project files
COPY package*.json ./
COPY tsconfig.json ./
COPY tsup.config.ts ./
RUN npm ci --silent
# Copy source files
COPY src ./src
COPY prisma ./prisma
COPY manager ./manager
COPY .env.example ./.env
COPY runWithProvider.js ./runWithProvider.js
# Generate Prisma client
RUN npx prisma generate
# Build project
RUN npm run build
# Final stage
FROM node:20-alpine AS final
RUN apk update && apk add --no-cache tzdata ffmpeg bash openssl
WORKDIR /evolution
# Copy artifacts from builder
COPY --from=builder /evolution/package.json ./package.json
COPY --from=builder /evolution/package-lock.json ./package-lock.json
COPY --from=builder /evolution/node_modules ./node_modules
COPY --from=builder /evolution/dist ./dist
COPY --from=builder /evolution/prisma ./prisma
COPY --from=builder /evolution/manager ./manager
COPY --from=builder /evolution/.env ./.env
COPY --from=builder /evolution/runWithProvider.js ./runWithProvider.js
COPY --from=builder /evolution/tsup.config.ts ./tsup.config.ts
# Hugging Face Spaces requires binding to $PORT
ENV HOST=0.0.0.0
ENV PORT=7860
ENV TZ=Africa/Cairo
ENV DOCKER_ENV=true
EXPOSE 7860
# Start API with SQLite (no Redis/Postgres)
ENTRYPOINT ["npm", "run", "start:prod"]