Przejdź do głównej zawartości

Aktualizacja

Pobierz nowe obrazy GHCR i przerecreate kontenery api i app. Migracje uruchamiają się automatycznie przy następnym starcie API — nie trzeba ręcznie wywoływać migrate:db.

Obrazy api i app są prywatne na GHCR, więc użytkownik uruchamiający docker compose pull musi być zalogowany w ghcr.io — patrz Logowanie do GHCR. Timer systemd opisany niżej uruchamia się jako root, więc jeśli planujesz go używać, zaloguj się jako root.

Zarówno api, jak i app pobierają tag latest kanału wybranego przez SANCHO_CHANNEL (domyślnie prod, czyli gałąź master). Ustaw SANCHO_CHANNEL=dev, aby śledzić pre-release-y z gałęzi develop.

Upgrade:

Terminal window
docker compose pull
docker compose up -d
Terminal window
git pull
docker compose pull
docker compose up -d

Codzienne automatyczne aktualizacje (systemd)

Section titled “Codzienne automatyczne aktualizacje (systemd)”

Obok pliku compose dostarczane są dwa unity: sancho-update.service i sancho-update.timer. Uruchamiają one docker compose pull api app + docker compose up -d api app + docker image prune -f codziennie o 04:00 UTC, dotykając wyłącznie kontenerów api i app. Baza danych, RabbitMQ, Redis i Caddy są pomijane.

Instalacja raz na host:

  1. Zedytuj WorkingDirectory w sancho-update.service na bezwzględną ścieżkę tego katalogu deployment/docker-compose (domyślnie /opt/sancho/...):

    Terminal window
    sudo $EDITOR sancho-update.service
  2. Skopiuj oba unity do /etc/systemd/system/:

    Terminal window
    sudo cp sancho-update.service sancho-update.timer /etc/systemd/system/
  3. Przeładuj systemd i włącz timer (to także go uruchomi):

    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl enable --now sancho-update.timer

Inspekcja:

Terminal window
systemctl status sancho-update.timer # kiedy odpali ponownie
systemctl list-timers sancho-update.timer # ostatni / następny run
journalctl -u sancho-update.service # output poprzednich uruchomień

Wymuszenie uruchomienia poza harmonogramem:

Terminal window
sudo systemctl start sancho-update.service

Wyłączenie:

Terminal window
sudo systemctl disable --now sancho-update.timer