Dockerfile 812 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. FROM python:3.11-slim as base
  2. RUN adduser --disabled-password reflex
  3. FROM base as build
  4. WORKDIR /app
  5. ENV VIRTUAL_ENV=/app/venv
  6. RUN python3 -m venv $VIRTUAL_ENV
  7. ENV PATH="$VIRTUAL_ENV/bin:$PATH"
  8. COPY . .
  9. RUN pip install wheel \
  10. && pip install -r requirements.txt
  11. FROM base as runtime
  12. RUN apt-get update && apt-get install -y \
  13. curl \
  14. && curl -fsSL https://deb.nodesource.com/setup_19.x | bash - \
  15. && apt-get update && apt-get install -y \
  16. nodejs \
  17. unzip \
  18. && rm -rf /var/lib/apt/lists/*
  19. ENV PATH="/app/venv/bin:$PATH"
  20. FROM runtime as init
  21. WORKDIR /app
  22. ENV BUN_INSTALL="/app/.bun"
  23. COPY --from=build /app/ /app/
  24. RUN reflex init
  25. FROM runtime
  26. COPY --chown=reflex --from=init /app/ /app/
  27. USER reflex
  28. WORKDIR /app
  29. CMD ["rx","run" , "--env", "prod"]
  30. EXPOSE 3000
  31. EXPOSE 8000