Dockerfile 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. FROM node:18-alpine AS base
  2. FROM base AS deps
  3. RUN apk add --no-cache libc6-compat
  4. RUN apk --no-cache add proxychains-ng
  5. WORKDIR /app
  6. COPY package.json yarn.lock ./
  7. RUN yarn install
  8. FROM base AS builder
  9. RUN apk update && apk add --no-cache git
  10. ENV OPENAI_API_KEY=""
  11. ENV CODE=""
  12. ARG DOCKER=true
  13. WORKDIR /app
  14. COPY --from=deps /app/node_modules ./node_modules
  15. COPY . .
  16. RUN yarn build
  17. FROM base AS runner
  18. WORKDIR /app
  19. ENV PROXY_URL=""
  20. ENV OPENAI_API_KEY=""
  21. ENV CODE=""
  22. COPY --from=builder /app/public ./public
  23. COPY --from=builder /app/.next/standalone ./
  24. COPY --from=builder /app/.next/static ./.next/static
  25. COPY --from=builder /app/.next/server ./.next/server
  26. EXPOSE 3000
  27. CMD if [ -n "$PROXY_URL" ]; then \
  28. protocol=$(echo $PROXY_URL | cut -d: -f1); \
  29. host=$(echo $PROXY_URL | cut -d/ -f3 | cut -d: -f1); \
  30. port=$(echo $PROXY_URL | cut -d: -f3); \
  31. echo "$protocol $host $port" >> /etc/proxychains.conf; \
  32. proxychains node server.js; \
  33. else \
  34. node server.js; \
  35. fi