Panel klienta →

Polecenia w aplikacji (migracje, seedy)

Jak uruchamiać jednorazowe polecenia w kontenerach aplikacji, np. migracje bazy i dane startowe, bez dostępu SSH.

Do replik aplikacji nie logujesz się przez SSH. Jednorazowe zadania — migracje bazy, dane startowe, polecenia administracyjne — uruchamiasz w zakładce Polecenia. Wynik widzisz na żywo w panelu.

Uruchamianie polecenia

  1. Otwórz aplikację w https://cloud.hostava.pl i przejdź do zakładki Polecenia.
  2. W polu Usługa z Compose wybierz usługę, w której ma działać polecenie. Panel podpowiada nazwy z Twojego compose (jeśli masz usługę migrate, wybierze ją domyślnie).
  3. W polu Polecenie wpisz polecenie, np. npm run db:migrate.
  4. Wybierz tryb:
    • Nowy kontener (zalecane) — panel uruchamia nowy kontener z obrazu tej usługi, ze zmiennymi z .env aplikacji, a po zakończeniu go usuwa (odpowiednik docker compose run --rm),
    • W działającym kontenerze — polecenie wykona się w już uruchomionym kontenerze usługi (odpowiednik docker compose exec).
  5. Przy kilku replikach możesz wybrać replikę z listy. Domyślnie to Pierwsza replika.
  6. Kliknij Uruchom (albo naciśnij Enter w polu polecenia).

Wynik pojawi się poniżej i odświeża się co kilka sekund. Status pokazuje trwa, zakończone (kod 0) albo błąd z kodem wyjścia.

Przykłady

# Node.js
npm run db:migrate
npm run db:seed

# Laravel
php artisan migrate --force

# Django
python manage.py migrate

# Rails
bin/rails db:migrate

Polecenie wykonuje się przez sh -c, więc możesz łączyć kroki, np. npm run db:migrate && npm run db:seed.

Kiedy który tryb

  • Nowy kontener wybieraj do migracji i seedów. Nie obciąża działającej aplikacji i działa nawet wtedy, gdy główny kontener się restartuje. Przy pierwszym uruchomieniu pobranie obrazu może chwilę potrwać.
  • W działającym kontenerze przydaje się, gdy potrzebujesz stanu żywego procesu, np. podejrzenia plików tymczasowych albo wyczyszczenia cache w pamięci kontenera. Usługa musi wtedy działać na wybranej replice.

Limity

  • Naraz działa jedno polecenie na aplikację. Kolejne uruchomisz po zakończeniu poprzedniego.
  • Polecenie może trwać najwyżej 1 godzinę. Po tym czasie zostanie przerwane z komunikatem „Przekroczono limit 1 godziny”.
  • Polecenie może mieć do 4000 znaków.
  • Panel pokazuje ostatnie ok. 60 KB wyniku.
  • Polecenie działa tylko na replice, która jest uruchomiona.

Zadanie biegnie w tle na replice, więc zamknięcie karty przeglądarki go nie przerywa. Wrócisz do wyniku przez listę Historia.

Uwaga: Polecenia zmieniające bazę uruchamiaj raz, na jednej replice. Wszystkie repliki korzystają z tej samej bazy, więc migracja wykonana na każdej z nich osobno nic nie da, a może zaszkodzić.

Uwaga: Zmiany plików wykonane w trybie W działającym kontenerze nie są trwałe — znikną przy następnym wdrożeniu. Dotyczą też tylko jednej repliki.

Historia

Sekcja Historia pokazuje ostatnie 20 poleceń: status, usługę, treść, datę i osobę, która je uruchomiła. Kliknij wpis, aby zobaczyć jego wynik. Uruchomienie polecenia trafia też do dziennika aktywności konta.

Wskazówka: Typowy przepływ po wydaniu nowej wersji: wdrożenie z CI lub Wdróż ponownie, a potem migracja w zakładce Polecenia. Tryb Nowy kontener używa obrazu pobranego na replikę przy ostatnim wdrożeniu — dlatego najpierw wdróż nową wersję, a dopiero potem uruchom jej migracje.

Powiązane: Aplikacja z pliku Docker Compose, Zarządzane bazy danych.

Nie znalazłeś odpowiedzi? Napisz do nas z panelu klienta — pomożemy.