33 lines
782 B
Docker
33 lines
782 B
Docker
FROM python:3.12
|
||
|
||
# Prevents Python from writing pyc files to disk
|
||
ENV PYTHONDONTWRITEBYTECODE=1
|
||
#Prevents Python from buffering stdout and stderr
|
||
ENV PYTHONUNBUFFERED=1
|
||
|
||
# supervisor
|
||
RUN apt-get update && apt-get install -y supervisor
|
||
|
||
# User
|
||
RUN useradd -m -r appuser && \
|
||
mkdir /opt/app && \
|
||
chown -R appuser /opt/app
|
||
|
||
WORKDIR /opt/app
|
||
|
||
# Copy the Django project and install dependencies
|
||
COPY requirements.txt /opt/app/
|
||
# Install dependencies
|
||
RUN pip install --no-cache-dir -r requirements.txt
|
||
|
||
COPY --chown=appuser:appuser . /opt/app/
|
||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||
|
||
RUN chmod -R 755 /opt
|
||
RUN chown -R appuser:appuser /opt
|
||
|
||
USER appuser
|
||
|
||
# Run Django’s server & workers
|
||
CMD ["sh", "-c", "/opt/app/initialize.sh && /usr/bin/supervisord"]
|