Репозиторий интернет-магазина stroyprombeton. Разрабатываем по методологии PDD.
Линк на роли в команде разработки сайта.
Инструкции для быстрой развёртки проекта для разработки. Подробности смотрите Makefile и drone.yml.
Для сокращения введём такие алиасы::
bash alias dc="docker-compose"
bash alias dcp="docker-compose -f docker-compose-production.yml"
Готовим код к работе
git clone [email protected]: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.