Орбита активно разрабатывается и добавляет новые функции. После запуска своего сайта вы всегда можете обновить исходники из репозитория.
Скачиваем новый код и перезапускаем контейнеры:
git pull
docker compose stop
docker compose up --build -d
В комплекте с Орбитой идёт файл docker-compose.override.yml.dist, который нужно скопировать в docker-compose.override.yml, после чего можно менять конфигурацию Docker.
По умолчанию этот файл открывает внешние порты для подключения к базе данных (порт
3333), и устанавливает
mailhog для локальной доставки писем (порт
8090).
Но самое главное - в нём прописана команда для запуска контейнера node в режиме разработки - yarn dev.
Еще советую указать переменную PHP_XDEBUG=1 в .env файле для добавляения Xdebug в контейнер php-fpm.
У меня вот такие настройки подключения в PhpStorm:
После любого изменения конфигурации Docker нужно пересобирать контейнеры.
После установки текущей версии вы можете захотеть что-то добавить или изменить, конкретно под свой проект. При этом, конечно же, хотелось бы оставить и возможность обновления из основного репозитория.
Мы можем легко это реализовать монтированием своих файлов на место оригинальных внутри контейнеров Docker.
Например, давайте изменим основной цвет проекта (переменная $primary). Для этого я копирую файл vesp/frontend/src/assets/scss/_variables.scss в .local/scss/_variables.scss.
Директории .local по умолчанию нет, её нужно создать - и она не отслеживается в Git.
Указываем в этом файле основной цвет red в самом начале:
$primary: red;
$enable-cssgrid: true;
И монтируем его в docker-compose.override.yml на место оригинального файла:
node:
restart: no
volumes:
- ./.local/scss/_variables.scss:/vesp/frontend/src/assets/scss/_variables.scss
command: sh -c 'rm -rf /tmp/* && yarn && yarn dev'
Перезапускаем контейнеры docker compose up --build и проверяем результат:
Таким образом вы можете подменить любой файл исходников и сохранить возможность делать git pull из оригинального репозитория.
Если вы работаете локально, то бывает нужно скачать базу данных из рабочего контейнера на сервере.
Я использую для этого такой скрипт:
#!/bin/zsh
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 | mysql -h127.0.0.1 -P3333 -uvesp -pvesp vesp
Обычно нужно поменять только переменную SSH для подключения к серверу.
Сам скрипт лучше положить в ту же директорию .local, которая не отслеживается Git.
Если вы не используете хранилище S3, то при обновлении БД желательно скачать и новые файлы с хостинга.
Я делаю это через rsync:
#!/bin/zsh
SSH=orbita@yourserver.ru
UPLOAD=/home/orbita/upload
rsync -avP --stats --delete ${SSH}:${UPLOAD} ../upload
Кладём туда же - в .local.