# Dockerfile
# Django
# Use python3 image
FROM python:3-slim
# Add maintainer label
LABEL maintainer="Your email"
# Set working directory
WORKDIR /app
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Install dependencies
RUN pip install --upgrade pip setuptools wheel
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
# Copy files
COPY project/ project/
COPY app/ app/
COPY manage.py manage.py
# Create unprivileged system user
# The -l flag is used as a workaround due to an unresolved bug:
# https://github.com/golang/go/issues/13548
RUN groupadd -r docker && useradd -l -r -s /bin/false -g docker docker
RUN chown -R docker:docker /app
USER docker
# Set entrypoint
# ENTRYPOINT ["gunicorn", "--access-logfile", "-", "--workers", "3", "--bind", "unix:project/project.sock", "--reload", "project.wsgi"]
ENTRYPOINT ["gunicorn", "--access-logfile", "-", "--workers", "3", "--bind", "0.0.0.0:8000", "--reload", "project.wsgi"]