33 lines
864 B
Docker
33 lines
864 B
Docker
FROM python:3.9-slim
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Optional: Set timezone via build argument (can override in docker-compose)
|
|
ARG TIMEZONE=UTC
|
|
ENV TZ=$TIMEZONE
|
|
|
|
# Install tzdata and optional tools
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends tzdata iputils-ping telnet mariadb-client && \
|
|
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
|
|
echo $TZ > /etc/timezone && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Create logs directory (used if LOG_TO_FILE=true)
|
|
RUN mkdir -p /app/logs
|
|
|
|
# Copy dependencies and install
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy application code
|
|
COPY . .
|
|
|
|
# Expose internal port (Gunicorn default)
|
|
EXPOSE 8080
|
|
|
|
# Run the app via Gunicorn
|
|
CMD ["gunicorn", "--bind", "0.0.0.0:8080", "wsgi:app", "--timeout", "120", "--workers", "2"]
|