61 lines
1.8 KiB
Docker
61 lines
1.8 KiB
Docker
# =====================================================================
|
|
# ALwrity Automated Dockerfile - Zero Manual Steps for End Users
|
|
# =====================================================================
|
|
# This Dockerfile will automatically:
|
|
# 1. Use Python 3.11
|
|
# 2. Install all system dependencies (build tools, Rust, etc.)
|
|
# 3. Clone the latest ALwrity code from GitHub
|
|
# 4. Install Python dependencies
|
|
# 5. Set up a non-root user
|
|
# 6. Expose Streamlit port and run the app
|
|
# =====================================================================
|
|
|
|
# 1. Use official Python 3.11 image
|
|
FROM python:3.11-slim as base
|
|
|
|
# 2. Set environment variables for Python
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1
|
|
|
|
# 3. Install system dependencies
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
gcc \
|
|
git \
|
|
curl \
|
|
wget \
|
|
nano \
|
|
libffi-dev \
|
|
libssl-dev \
|
|
rustc \
|
|
cargo \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# 4. Set work directory
|
|
WORKDIR /app
|
|
|
|
# 5. Clone the latest ALwrity code from GitHub
|
|
RUN git clone https://github.com/AJaySi/AI-Writer.git .
|
|
|
|
# 6. Install Python dependencies
|
|
RUN pip install --upgrade pip && \
|
|
pip install --no-cache-dir -r requirements.txt
|
|
|
|
# 7. Create a non-root user for security
|
|
RUN useradd -m alwrityuser
|
|
USER alwrityuser
|
|
|
|
# 8. Expose Streamlit's default port
|
|
EXPOSE 8501
|
|
|
|
# 9. Set environment variable for Streamlit (optional: disables telemetry)
|
|
ENV STREAMLIT_TELEMETRY=0
|
|
|
|
# 10. Default command: run ALwrity with Streamlit
|
|
CMD ["streamlit", "run", "alwrity.py", "--server.port=8501", "--server.address=0.0.0.0"]
|
|
|
|
# =====================================================================
|
|
# END OF DOCKERFILE
|
|
# =====================================================================
|