Репозиторий интернет-магазина stroyprombeton. Разрабатываем по методологии PDD.
Линк на роли в команде разработки сайта.
Инструкции для быстрой развёртки проекта для разработки. Подробности смотрите Makefile и drone.yml.
Для сокращения введём такие алиасы::
bash alias dc="docker-compose" bash alias dcp="docker-compose -f docker-compose-production.yml"Готовим код к работе
git clone git@github.com:fidals/stroyprombeton.git cd stroyprombeton/docker/ # this command will ask you to fill some files. # See this instruction below to get out how to do it. make deploy-devФайлы env make deploy-dev создаст файлы для окружения (env) со стандартными значениями. А затем попросит заполнить их. Пару рекомендаций по заполнению:
- Генерим случайные: Django secret key, пароли к локальным базам
Проверяем адрес http://127.0.0.1:8020 - загружается сайт. Вместо порта 8020 может быть другой - переменная окружения (env var) VIRTUAL_HOST_PORT.
Установка refarm-site Сайт использует refarm-site как внешнюю зависимость. Интерфейс refarm-site нестабилен, поэтому иногда при разработке фичи сайта нужно поправить код refarm-site вместе с кодом сайта. Для этого можно установить его как зависимость для разработки (pip -e). И примонтировать внутрь контейнера app. Смотрите на переменную окружения REFARM_SITE.
Админка Адрес: /admin/
Логин/пароль: admin/asdfjkl;
Этот раздел полезен только Архитекторам. Деплой на сервер делаем руками.
make deployЗапускаем специальный контейнер - stb-backup-data:
cd <proj root>/docker make backupВ результате работы контейнер создаст несколько архивов в хост-системе:
/opt/backups/stroyprombeton/database.tar.gz- дамп базы данных/opt/backups/stroyprombeton/media.tar.gz- дамп медиафайлов/opt/backups/stroyprombeton/static.tar.gz- дамп статики
Для восстановления базы данных и медиафайлов достаточно запустить make restore. Скрипт скачает последний бекап с сервера и разместит файлы в продакшен-папках. Для доступа к бэкап-серверу используются public+private ключи.
/opt/database/stroyprombeton- база данных, используется как volume контейнера stb-postgres/opt/media/stroyprombeton- медиафайлы, используется как volume контейнера stb-source/opt/static/stroyprombeton- статика, не подключается как volume, нужно скопировать вручную в директорию с статикой
N.B.: Некоторые данные (например, медиафайлы) могут иметь большой размер. На момент написания этой заметки, архив с медиафайлами Stroyprombeton весил ~1GB.