- Конфигурация collectstatic в settings.py: * STATIC_ROOT = staticfiles/ для собранных файлов * STATICFILES_DIRS указывает на public/static * CompressedManifestStaticFilesStorage для production * WhiteNoiseMiddleware в MIDDLEWARE * WHITENOISE_ROOT для подачи файлов из /public - Исправлены пути в settings.py для правильной работы БД - Обновлена конфигурация urls.py для отдачи статики - Добавлена зависимость whitenoise ^6.6.0 в pyproject.toml - Обновлен .gitignore (раскомментирована staticfiles/) Статика работает в dev режиме и готова для production.
27 lines
14 KiB
XML
27 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project version="4">
|
|
<component name="CopilotDiffPersistence">
|
|
<option name="pendingDiffs">
|
|
<map>
|
|
<entry key="$PROJECT_DIR$/docker-compose.prod.yml">
|
|
<value>
|
|
<PendingDiffInfo>
|
|
<option name="filePath" value="$PROJECT_DIR$/docker-compose.prod.yml" />
|
|
<option name="originalContent" value="# docker-compose.prod.yml для production развертывания проекта rosmorport_tsts # Использование: docker-compose -f docker-compose.prod.yml up -d version: '3.9' services: # Django приложение в production web: # Строим образ из Dockerfile в текущей директории build: context: . dockerfile: Dockerfile # Имя контейнера container_name: rosmorport_web_prod # Переменные окружения для production environment: - DOCKER_ENV=1 - DEBUG=False - ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0,web,pet-clones.cocorico.ru - DB_ENGINE=django.db.backends.postgresql - DB_HOST=db - DB_PORT=5432 - DB_NAME=${POSTGRES_DB:-rosmorport_db} - DB_USER=${POSTGRES_USER:-postgres} - DB_PASSWORD=${POSTGRES_PASSWORD:-postgres} - PYTHONUNBUFFERED=1 # Тома для медиа, статики и БД volumes: - public_media:/app/public/media - public_static:/app/public/static - database:/app/database - ./logs:/app/logs # Перенаправляем порты ports: - "8000:8000" # Зависимость от базы данных depends_on: db: condition: service_healthy # Политика перезапуска restart: unless-stopped # Ограничения ресурсов deploy: resources: limits: cpus: '1' memory: 512M reservations: cpus: '0.5' memory: 256M # PostgreSQL база данных для production db: # Используем официальный образ PostgreSQL image: postgres:16-alpine container_name: rosmorport_db_prod # Переменные окружения environment: - POSTGRES_DB=${POSTGRES_DB:-rosmorport_db} - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres} # Том для хранения данных БД volumes: - postgres_data:/var/lib/postgresql/data # Портов не открываем - доступ только изнутри контейнеров # ports: # - "5432:5432" # Проверка здоровья сервиса healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"] interval: 10s timeout: 5s retries: 5 # Политика перезапуска restart: unless-stopped # Ограничения ресурсов deploy: resources: limits: cpus: '1' memory: 1G reservations: cpus: '0.5' memory: 512M # Nginx для reverse proxy (опционально) # nginx: # image: nginx:alpine # container_name: rosmorport_nginx # volumes: # - ./config/nginx.conf:/etc/nginx/nginx.conf:ro # - django_staticfiles:/app/static:ro # - django_mediafiles:/app/media:ro # ports: # - "80:80" # - "443:443" # depends_on: # - web # restart: unless-stopped # Именованные тома для хранения данных volumes: postgres_data: driver: local public_media: driver: local public_static: driver: local database: driver: local # Сеть для сервисов networks: default: name: rosmorport_network driver: bridge " />
|
|
<option name="updatedContent" value="# docker-compose.prod.yml для production развертывания проекта rosmorport_tsts # Использование: docker-compose -f docker-compose.prod.yml up -d version: '3.9' services: # Django приложение в production web: # Строим образ из Dockerfile в текущей директории build: context: . dockerfile: Dockerfile # Имя контейнера container_name: rosmorport_web_prod # Переменные окружения для production environment: - DOCKER_ENV=1 - DEBUG=False - ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0,web,pet-clones.cocorico.ru - DB_ENGINE=django.db.backends.postgresql - DB_HOST=db - DB_PORT=5432 - DB_NAME=${POSTGRES_DB:-rosmorport_db} - DB_USER=${POSTGRES_USER:-postgres} - DB_PASSWORD=${POSTGRES_PASSWORD:-postgres} - PYTHONUNBUFFERED=1 # Тома для медиа, статики и БД volumes: - public_media:/app/public/media - public_static:/app/public/static - database:/app/database # Перенаправляем порты ports: - "8000:8000" # Зависимость от базы данных depends_on: db: condition: service_healthy # Политика перезапуска restart: unless-stopped # Ограничения ресурсов deploy: resources: limits: cpus: '1' memory: 512M reservations: cpus: '0.5' memory: 256M # PostgreSQL база данных для production db: # Используем официальный образ PostgreSQL image: postgres:16-alpine container_name: rosmorport_db_prod # Переменные окружения environment: - POSTGRES_DB=${POSTGRES_DB:-rosmorport_db} - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres} # Том для хранения данных БД volumes: - postgres_data:/var/lib/postgresql/data # Портов не открываем - доступ только изнутри контейнеров # ports: # - "5432:5432" # Проверка здоровья сервиса healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"] interval: 10s timeout: 5s retries: 5 # Политика перезапуска restart: unless-stopped # Ограничения ресурсов deploy: resources: limits: cpus: '1' memory: 1G reservations: cpus: '0.5' memory: 512M # Nginx для reverse proxy (опционально) # nginx: # image: nginx:alpine # container_name: rosmorport_nginx # volumes: # - ./config/nginx.conf:/etc/nginx/nginx.conf:ro # - django_staticfiles:/app/static:ro # - django_mediafiles:/app/media:ro # ports: # - "80:80" # - "443:443" # depends_on: # - web # restart: unless-stopped # Именованные тома для хранения данных volumes: postgres_data: driver: local public_media: driver: local public_static: driver: local database: driver: local # Сеть для сервисов networks: default: name: rosmorport_network driver: bridge " />
|
|
</PendingDiffInfo>
|
|
</value>
|
|
</entry>
|
|
<entry key="$PROJECT_DIR$/docker-compose.yml">
|
|
<value>
|
|
<PendingDiffInfo>
|
|
<option name="filePath" value="$PROJECT_DIR$/docker-compose.yml" />
|
|
<option name="originalContent" value="# docker-compose.yml для локальной разработки проекта rosmorport_tsts version: '3.9' services: # Django приложение web: # Строим образ из Dockerfile в текущей директории build: context: . dockerfile: Dockerfile # Имя контейнера container_name: rosmorport_web # Переменные окружения для разработки environment: - DOCKER_ENV=1 - 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 - ./logs:/app/logs # Перенаправляем порты ports: - "8000: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: driver: local django_mediafiles: driver: local # postgres_data: # driver: local # Опционально: сеть для сервисов networks: default: name: rosmorport_network driver: bridge " />
|
|
<option name="updatedContent" value="# docker-compose.yml для локальной разработки проекта rosmorport_tsts version: '3.9' services: # Django приложение web: # Строим образ из Dockerfile в текущей директории build: context: . dockerfile: Dockerfile # Имя контейнера container_name: rosmorport_web # Переменные окружения для разработки environment: - DOCKER_ENV=1 - 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" # Команда для запуска в режиме разработки 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: driver: local django_mediafiles: driver: local # postgres_data: # driver: local # Опционально: сеть для сервисов networks: default: name: rosmorport_network driver: bridge " />
|
|
</PendingDiffInfo>
|
|
</value>
|
|
</entry>
|
|
</map>
|
|
</option>
|
|
</component>
|
|
</project> |