ttt / Dockerfile
mfoud444's picture
all
96b30c7
# Stage 1: Builder
FROM python:3-alpine AS builder
WORKDIR /app
# Create virtual environment and set environment variables
RUN python3 -m venv venv
ENV VIRTUAL_ENV=/app/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Copy all project files to the container
COPY . .
# Install dependencies from requirements.txt
RUN pip install -r requirements.txt
# Stage 2: Runner
FROM python:3-alpine AS runner
WORKDIR /app
# Copy virtual environment from the builder stage
COPY --from=builder /app/venv venv
# Copy all files again (including the ones that may have been modified in the builder stage)
COPY . .
# Set environment variables for the virtual environment
ENV VIRTUAL_ENV=/app/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Ensure that all files and folders have 777 permissions (read, write, and execute)
RUN chmod -R 777 /app
# Set environment variable to specify session directory
ENV TELETHON_SESSION_DIR="/app/session"
# Expose the port where the Flask app will be running
EXPOSE 7860
# Run the script
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]