File size: 1,149 Bytes
c45eea1 779be37 c45eea1 779be37 b8527db 779be37 c45eea1 779be37 9072187 779be37 b8527db c45eea1 779be37 c45eea1 779be37 c45eea1 779be37 b8527db | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | FROM python:3.10-slim
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1
RUN apt-get update && apt-get install -y \
curl \
libgomp1 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt /tmp/requirements.txt
RUN pip install --upgrade pip \
&& pip install --no-cache-dir -r /tmp/requirements.txt
RUN useradd -m -u 1000 appuser \
&& chown -R appuser:appuser /app
COPY --chown=appuser:appuser . /app
USER appuser
ENV HOME=/home/appuser
EXPOSE 7860
CMD ["sh", "-c", "\
PYTHONPATH=/app/app python manage.py migrate --run-syncdb 2>&1 && \
PYTHONPATH=/app/app python manage.py shell -c \"\
import os; \
from django.contrib.auth import get_user_model; \
User = get_user_model(); \
email = os.environ.get('ADMIN_EMAIL', 'admin@example.com'); \
password = os.environ.get('ADMIN_PASSWORD', 'changeme123'); \
User.objects.filter(username='admin').exists() or User.objects.create_superuser('admin', email, password); \
print('Superuser ready'); \
\" 2>&1 && \
PYTHONPATH=/app/app gunicorn guru_project.wsgi:application \
--bind 0.0.0.0:7860 \
--workers 2 \
--timeout 120 \
--log-level info \
"] |