Spinta diegimas naudojant konteinerius (Docker)
Norint naudoti Spintos Agentą kaip konteinerį galima konteinerį kurti patiems arba naudoti oficialų VSSA palaikomą docker image. Tačiau verta atkreipti dėmesį, kad naudojant VSSA docker image apima tik Spinta dalį, tačiau Redis ir Reverse proxy (SSL užtikrinimui) diegimas ir konfigūravimas lieka institucijos atsakomybėje.
Docker pavyzdys
VSSA palaikomą oficialų Docker image galima parsisiųsti iš Docker hub: Spinta Docker image
Spinta Agento konfigūracijos failų paruošimas
Visų pirma pasikeiskite aktyvų naudotoją ir katalogą:
sudo -Hsu spinta
cd
Spinta yra konfigūruojama konfigūracijos failo pagalba, kurio, pagal nutylėjimą ieškoma aktyviame kataloge. Kur Spinta ieško konfigūracijos failo, galima patikrinti taip:
Pastaba
PASTABA: Ši komanda neveiks, kol nebus paleistas Spinta konteineris
docker exec spinta spinta config config
Kadangi Spintos konfigūracijos failas neegzistuoja, reikia jį sukurti:
cat > config.yml << 'EOF'
config_path: /app/spinta_config/config
env: production
access: protected
keymaps:
default:
type: redis
dsn: redis://redis-keymap:6379/1
accesslog:
type: file
file: /app/spinta_config/logs/access.log
EOF
Failo aprašas
Kintamasis |
Privalomas ar neprivalomas |
Aprašas |
|---|---|---|
config_path |
Privalomas |
Nurodo kelią į direktoriją, kurioje yra įvairūs konfigūracijos duomenys |
env |
Nurodo, ar aplinka testinė, ar vystymo, ar produkcinė. Rekomenduojama diegti su |
|
access |
Privalomas nuo 0.2dev22 |
Nurodo numatytąjį prieigos lygį. Rekomenduojama nurodyti |
keymaps |
Privalomas |
Aprašyta žemiau |
.default |
Nurodo numatytąjį |
|
..type |
Tipas - |
|
..dsn |
Nurodo, kaip pasiekti servisą |
|
accesslog |
Nurodo, kur bus saugomi prieigos žurnalai |
|
.type |
Tipas - ar saugoma faile, ar kitaip |
|
.file |
Jei saugoma faile, nurodo, kuriame faile |
Prieš testuojant ar konfigūracija veikia, sukuriame reikalingus katalogus:
mkdir /opt/spinta/logs
mkdir /opt/spinta/config
mkdir /opt/spinta/.spinta_logs
Keymap DB
Keymap DB
Įspėjimas
Pagal numatytuosius nustatymus naudojama SQLite, tačiau būtina pakeisti į Redis persistent.
Keymap naudojamas susieti išorinius identifikatorius su vidiniais identifikatoriais. Gali būti konfigūruojama.
Spintos Agentui nurodome kokį keymap komponentą naudoti ir kaip jį pasiektį per config.yml failą. Pateikiame config.yml failo fragmentą:
keymaps:
default:
type: redis
dsn: redis://redis-address:6379/1
Patarimas
Jei neturite Redis serviso, rekomenduojame diegti Docker konteineryje.
Docker konteinerio paleidimas
Sukurkite docker-compose.yml konfigūraciją:
Pastaba
Aplinkos parametrus patartina apsirašyti atskirame aplinkai skirtame faile.
cat > docker-compose.yml << 'EOF'
services:
redis-keymap: # sqlite faster alternative
image: valkey/valkey:9
restart: always
command: ["redis-server", "--appendonly", "yes", "--appendfsync", "everysec"] # šie nustatymai užtikrina pilną apsaugojimą nuo duomenų praradimo
ports:
- "6379:6379"
volumes:
- redis_keymap_data:/data
spinta:
image: vssadevops/spinta:latest
container_name: spinta
restart: always
ports:
- "8000:8000"
environment:
HOME: /app/spinta_config
SPINTA_CONFIG: /app/spinta_config/config.yml
volumes:
- /opt/spinta:/app/spinta_config
depends_on:
- redis-keymap
command: bash /app/spinta_config/startup.sh
volumes:
redis_keymap_data:
EOF
Atsargiai
SVARBU! Redis būtinai turi būti leidžiamas persistent režimu (appendonly:yes ir appendfsync:always parametrai)
Yra keli persistent režimai (žr. Redis/Valkey dokumentaciją). Numatytasis režimas (appendonly:yes ir appendfsync:always) užtikrina didžiausią duomenų nepraradimo patikimumą, tačiau turi mažiausią greitį naujo rakto kūrimo metu, lyginant su kitais režimais.
Paleiskite Docker konteinerius:
docker compose up -d
Patikrinkite Docker būseną:
docker ps -a
Patikrinkite Docker žurnalą:
docker logs spinta
Konfigūracijos tikrinimas
docker exec spinta spinta config config backends manifests accesslog
Pastaba
Jei jūsų duomenų šaltinis - reliacinė duomenų bazė, patikriname ar Spinta gali prisijungti prie duomenų bazės.
docker exec spinta spinta wait 1