3.4 KiB
Containers
Ten dokument opisuje docelowy model komend rvctl do uruchamiania
srodowiska programistycznego w kontenerach.
Zasada
Kontener jest srodowiskiem pracy dla wybranej karty, opcjonalnie zawezonym do
konkretnego zadania. rvctl uruchamia je przez sesje tmux, tak aby terminal
z kontenerem byl latwy do ponownego podlaczenia.
Uzywamy namespace containers, a nie container, bo jest spojny z pluralnymi
namespace'ami tokens, cards i tasks.
Szybki Flow
Typowy przeplyw pracy:
./rvctl tokens compare
./rvctl series cards show inf 03
./rvctl series cards tasks list inf 03
./rvctl containers show inf 03
./rvctl containers start inf 03 --session rv-inf03 --attach
./rvctl containers list
./rvctl containers stop rv-inf03
Model
Docelowo komendy containers pracuja na trzech warstwach:
- karta pracy, np.
inf 03 - opcjonalne zadanie, np.
--task task1 - instancja srodowiska, np.
--instance shell
Domyslne wartosci pochodza z workspace.json:
defaults.series
defaults.card
defaults.task
defaults.instance
defaults.tmux_session
defaults.tmux_window
Komendy
containers show [SERIES] [CARD]
Pokazuje plan uruchomienia srodowiska bez tworzenia sesji tmux.
./rvctl containers show inf 03
./rvctl containers show inf/03 --task task1
Typowe pola:
selector inf/03
task task1
card_path ~/dev/workspace/rv/series/inf/03
task_path ~/dev/workspace/rv/series/inf/03/task1
tools_root ~/dev/workspace/rv/tools/rv32i-hazard3-env
session rv-inf03
window rv
instance shell
Ta komenda jest odpowiednikiem obecnego trybu:
./rvctl tmux-container inf 03 --dry-run
containers start [SERIES] [CARD]
Uruchamia sesje tmux i kontener dla wybranej karty.
./rvctl containers start inf 03
./rvctl containers start inf/03 --session rv-inf03
./rvctl containers start inf 03 --task task1 --instance shell --attach
Przelaczniki:
--task TASKWybiera zadanie w karcie. Bez tegorvctluzywa domyslnego zadania zworkspace.jsonalbo pracuje na katalogu karty.--session NAMENadpisuje nazwe sesjitmux.--window NAMENadpisuje nazwe oknatmux.--instance NAMEUstawia wariant srodowiska, np.shell.--attachPo uruchomieniu od razu podlacza terminal do sesji.
containers list
Listuje aktywne srodowiska uruchomione przez rvctl.
./rvctl containers list
Przykladowy wynik:
session selector task instance window
-------- -------- ----- -------- ------
rv-inf03 inf/03 task1 shell rv
containers attach SESSION
Podlacza terminal do istniejacej sesji.
./rvctl containers attach rv-inf03
Technicznie odpowiada to:
tmux attach -t rv-inf03
containers stop SESSION
Zamyka sesje tmux, a razem z nia uruchomiony w niej proces kontenera.
./rvctl containers stop rv-inf03
Technicznie odpowiada to:
tmux kill-session -t rv-inf03
Aliasowanie Starej Komendy
Stara komenda moze zostac jako alias kompatybilnosci:
tmux-container inf 03 --dry-run -> containers show inf 03
tmux-container inf 03 --session NAME -> containers start inf 03 --session NAME
tmux-container inf/03 --attach -> containers start inf/03 --attach
Dokumentacja i nowe przyklady powinny promowac namespace containers.