К содержимому

Разработка

Орбита активно разрабатывается и добавляет новые функции.


После запуска своего сайта вы всегда можете обновить исходники из репозитория.

Скачиваем новый код, обновляем контейнеры и перезапускаем контейнер:

bash
git pull
docker compose pull
docker compose stop
docker compose up --build -d

Режим разработки

Для включения режима разработки мы пользуемся встроенным функционалом Docker по смешиванию конфигов.

В комплекте с Орбитой идёт файл docker-compose.override.yml.dist, который нужно скопировать в docker-compose.override.yml, после чего можно менять конфигурацию Docker.

По умолчанию этот файл открывает внешние порты для подключения к базе данных (порт 3333), и устанавливает mailhog для локальной доставки писем (порт 8090).

Но самое главное - в нём прописана команда для запуска контейнера node в режиме разработки - npm run dev.

Еще советую указать переменную PHP_XDEBUG=1 в .env файле для добавления Xdebug в контейнер php-fpm.

У меня вот такие настройки подключения в PhpStorm:

Важно!

После любого изменения конфигурации Docker нужно перезапускать контейнеры командой

shell
docker compose up --build -d

Замена исходных файлов

После установки текущей версии вы можете захотеть что-то добавить или изменить, конкретно под свой проект. При этом, конечно же, хотелось бы оставить и возможность обновления из основного репозитория.

Мы можем легко это реализовать монтированием своих файлов на место оригинальных внутри контейнеров Docker.

Например, давайте изменим основной цвет проекта (SCSS переменная $primary).

Для этого я копирую файл frontend/src/assets/scss/_variables.scss в .local/scss/_variables.scss.

shell
cd /home/orbita
mkdir -p .local/scss
cp frontend/src/assets/scss/_variables.scss .local/scss/_variables.scss

Кстати

Директории .local по умолчанию нет, мы её создаём и она не будет отслеживаться в Git.

Теперь указываем в этом файле основной цвет red в самом начале:

scss
$primary: red;
$enable-cssgrid: true;
// ...

И монтируем его в docker-compose.override.yml на место оригинального файла:

docker
  node:
    restart: no
    volumes:
      - ./.local/scss/_variables.scss:/vesp/frontend/src/assets/scss/_variables.scss
    command: sh -c 'rm -rf /tmp/* && npm i && npm run dev'

Перезапускаем контейнеры docker compose up --build и проверяем результат:

Таким образом

Вы можете подменить любой файл исходников и сохранить возможность делать git pull из оригинального репозитория.

Кстати

Подробнее про переменные Bootstrap 5 можно почитать в его документации.

Обновление локальной БД

Если вы работаете локально, то бывает нужно скачать базу данных из рабочего контейнера на сервере.

Я использую для этого такой скрипт:

bash
#!/bin/bash

SSH=orbita@yourserver.ru
CONTAINER=orbita-mariadb-1

ssh ${SSH} "docker exec -t ${CONTAINER} mariadb-dump -uvesp -pvesp vesp \
  --skip-lock-tables --add-drop-table --skip-comments --force --single-transaction --quick --no-tablespaces \
  | bzip2 --fast" | bunzip2 | tail +2 | docker exec -i $CONTAINER mariadb -uvesp -pvesp vesp

Обычно нужно поменять только переменную SSH для подключения к серверу.

Совет

Сам скрипт лучше положить в ту же директорию .local, которая не отслеживается Git.

Загрузка файлов

Если вы не используете хранилище S3, то при обновлении БД желательно еще скачать и новые файлы с хостинга.

Я делаю это через rsync:

bash
#!/bin/bash

SSH=orbita@yourserver.ru
UPLOAD=/home/orbita/upload

rsync -avP --stats --delete ${SSH}:${UPLOAD} ../upload

Кладём туда же, в директорию .local.