38 lines
1.3 KiB
Docker
38 lines
1.3 KiB
Docker
FROM python:3.11-slim
|
||
|
||
WORKDIR /app
|
||
|
||
# Установка системных зависимостей
|
||
RUN apt-get update && apt-get install -y \
|
||
libpq-dev \
|
||
gcc \
|
||
gettext \
|
||
vim \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# Копирование и установка Python зависимостей
|
||
COPY requirements.txt .
|
||
RUN pip install --no-cache-dir -r requirements.txt
|
||
|
||
# Дополнительно устанавливаем daphne если его нет в requirements.txt
|
||
RUN pip install daphne
|
||
|
||
# Создание непривилегированного пользователя с определенным UID/GID
|
||
RUN groupadd -r appuser -g 1000 && useradd -r -g appuser -u 1000 appuser
|
||
|
||
# Копирование исходного кода
|
||
COPY . .
|
||
|
||
# Создание директорий для статических файлов, медиа и логов с правильными правами
|
||
RUN mkdir -p /app/staticfiles /app/media /app/logs && \
|
||
chown -R appuser:appuser /app && \
|
||
chmod -R 755 /app/logs
|
||
|
||
# Переключение на непривилегированного пользователя
|
||
USER appuser
|
||
|
||
EXPOSE 8000
|
||
|
||
# Команда по умолчанию - запуск через daphne для поддержки WebSocket
|
||
CMD ["daphne", "-b", "0.0.0.0", "-p", "8000", "videocall_app.asgi:application"]
|