feat: оптимизация Docker контейнера для разработки
Обновлен Dockerfile с двухэтапной сборкой, экспортом зависимостей через poetry, сборкой статики и удалением лишних файлов (экономия ~20МБ). Обновлен docker-compose.yml с привязкой к localhost для безопасности. Обновлен .dockerignore для исключения ненужных файлов (source maps, RTL CSS, TTF). Добавлены таймауты SQLite в settings.py. Минимальные параметры Gunicorn: 1 worker, timeout 30s, max-requests 100. Тестировано и работает на http://localhost:8040
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# docker-compose.yml для локальной разработки проекта rosmorport_tsts
|
||||
version: '3.9'
|
||||
# Использование: docker-compose up
|
||||
|
||||
# version: '3.9'
|
||||
|
||||
services:
|
||||
# Django приложение
|
||||
@@ -10,60 +12,27 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
|
||||
# Имя контейнера
|
||||
container_name: rosmorport_web
|
||||
|
||||
container_name: rosmorpor-tst-site--backend
|
||||
|
||||
# Переменные окружения для разработки
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- DOCKER_ENV=1
|
||||
- DJANGO_LOG_LEVEL=DEBUG
|
||||
- DEBUG=True
|
||||
- ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0,web
|
||||
- DB_ENGINE=django.db.backends.sqlite3
|
||||
- DB_NAME=/app/db.sqlite3
|
||||
- PYTHONUNBUFFERED=1
|
||||
|
||||
# Монтируем текущую директорию для разработки
|
||||
volumes:
|
||||
- .:/app
|
||||
- ./public/static:/app/public/static
|
||||
- ./public/media:/app/public/media
|
||||
- ./database:/app/database
|
||||
|
||||
# Перенаправляем порты
|
||||
ports:
|
||||
- "8000:8000"
|
||||
- "127.0.0.1:8040:8000"
|
||||
|
||||
# Команда для запуска в режиме разработки
|
||||
command: >
|
||||
sh -c "python rosmorport_tsts/manage.py migrate &&
|
||||
python rosmorport_tsts/manage.py collectstatic --noinput &&
|
||||
python rosmorport_tsts/manage.py runserver 0.0.0.0:8000"
|
||||
|
||||
# Зависимости (если будут другие сервисы)
|
||||
# depends_on:
|
||||
# - db
|
||||
|
||||
# Сохраняем контейнер в запущенном состоянии при ошибках
|
||||
stdin_open: true
|
||||
tty: true
|
||||
|
||||
# Опционально: PostgreSQL база данных для продакшена
|
||||
# db:
|
||||
# image: postgres:16-alpine
|
||||
# container_name: rosmorport_db
|
||||
# environment:
|
||||
# - POSTGRES_DB=rosmorport_db
|
||||
# - POSTGRES_USER=postgres
|
||||
# - POSTGRES_PASSWORD=postgres
|
||||
# volumes:
|
||||
# - postgres_data:/var/lib/postgresql/data
|
||||
# ports:
|
||||
# - "5432:5432"
|
||||
# healthcheck:
|
||||
# test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
# interval: 10s
|
||||
# timeout: 5s
|
||||
# retries: 5
|
||||
|
||||
# Именованные тома для хранения данных
|
||||
volumes:
|
||||
django_staticfiles:
|
||||
|
||||
Reference in New Issue
Block a user