Оновлення self-host-інсталяції
Для інсталяцій, поставлених із Docker self-host bundle релізу.
Перед оновленням
Section titled “Перед оновленням”- Прочитай нотатки до релізу на GitHub Releases:
там сказано, чи є нові міграції і нові змінні
.env. - Зроби копії бази і файлів.
- Збережи поточний
.env. - Перевір, що томи на місці:
docker volume ls --filter name=projectkДані живуть в іменованих томах Docker; оновлення образів їх не чіпає.
Ніколи не виконуй це, якщо не хочеш видалити всі дані інсталяції:
docker compose down -vОновлення в тій самій теці bundle
Section titled “Оновлення в тій самій теці bundle”У .env постав цільову версію:
PROJECTK_VERSION=<версія>Витягни нові образи з GHCR і перезапусти:
docker compose pulldocker compose up -dAPI застосовує міграції EF Core на старті. Великі рефакторинги (як 0.20.0 з переходом на
членства) роблять це довше за звичайне — дай API хвилину і перевір docker compose logs -f projectk-api.
Теги образів
Section titled “Теги образів”Compose тягне образи за PROJECTK_VERSION:
ghcr.io/iamavasya/projectk-api:${PROJECTK_VERSION}ghcr.io/iamavasya/projectk-web:${PROJECTK_VERSION}Для живих інсталяцій — явна версія (наприклад 1.1.9). Тег beta рухається до найновішої бети і
годиться лише тим, хто свідомо хоче йти за нею.
Оновлення з нового bundle
Section titled “Оновлення з нового bundle”- Завантаж новий
projectk-<версія>-docker-selfhost. - Розпакуй у нову теку.
- Скопіюй туди свій
.env. - Переглянь
.env.example— чи не зʼявились нові змінні. У 1.1.x додались, зокрема,PROJECTK_EMAIL_*(пошта),PROJECTK_TIME_ZONE,PROJECTK_KURIN_NUMBER_MAXіPROJECTK_WEBPUSH_*(сповіщення на телефон) — див. Self-host. - Виконай:
docker compose pulldocker compose up -dBundle використовує явні назви томів projectk-sql-data і projectk-azurite-data, тож дані
лишаються привʼязаними до інсталяції навіть при зміні назви теки.
Якщо інсталяція старіша за 0.14.2-beta
Section titled “Якщо інсталяція старіша за 0.14.2-beta”Ранні bundle давали томам назви з префіксом теки, наприклад
projectk-0.14.1-beta-docker-selfhost_projectk-sql-data. Перед запуском нової версії з нової теки
перевір реальні назви томів (docker volume ls --filter name=projectk). Якщо дані в томах із
префіксом — зроби копію зі старої теки і віднови її в нові томи projectk-sql-data та
projectk-azurite-data.
Перевір після оновлення
Section titled “Перевір після оновлення”-
docker compose ps— усі чотири контейнериrunning (healthy). -
Здоровʼя API і його версія:
Terminal window docker compose exec projectk-api curl -fsS http://localhost:8080/healthУ відповіді
"status":"ready"і нова версія. -
Увійди в Лілейку й відкрий «Про Лілейку» внизу бічного меню: там версія застосунку й API.
-
Якщо щось не так —
docker compose logs -f projectk-api.
Відкат
Section titled “Відкат”Відкат безпечний лише коли схема бази сумісна з попередньою версією. Після невдалої міграції чи великих змін — відновлюйся з копії, а не відкочуй образ.