CLI referencia

add compose / add docker

A compose.yml, illetve csak a Dockerfile/.dockerignore önálló (újra)generálása egy meglévő projektbe.

Az add compose és az add docker önállóan, az alkalmazáskód érintése nélkül regenerálja a konténerizált dev infrastruktúrát. Akkor nyúlj hozzájuk, ha a fájlok törlődtek, vagy ha kézi szerkesztések eltértek a generált formától, és tiszta újraépítést szeretnél.

go tool gpsystem add compose
go tool gpsystem add docker

A new project már kigenerálja a teljes konténerizált dev stacket (compose.yml, Dockerfile, .dockerignore). Ez a két parancs ezt az infrastruktúrát önállóan, az alkalmazáskód érintése nélkül (újra)generálja: olyan projekthez, ahol a fájlok törlődtek, vagy a compose.yml tiszta újraépítéséhez, ha kézi szerkesztések eltértek a generált formától.

add compose

A compose.yml-t nulláról renderli: az alap dev stacket (postgres, valkey, mailpit, rustfs, rustfs-init, migrate, worker), plusz egy app-service-t minden, a manifestben (gpsystem.yaml) nyilvántartott modulhoz, rendezett sorrendben. Emellett pótolja a .env.example # gpsystem:env blokkját is, ha hiányzik.

go tool gpsystem add compose

Megtagadja egy meglévő compose.yml felülírását, hacsak nem adod meg a --force-ot: az újragenerálás a teljes fájlt lecseréli, így minden, a # gpsystem:services anchor alá kézzel felvett service elvész. Ha csak egy új modult szeretnél bekötni egy meglévő compose.yml-be, arra a new module már megoldást ad anchor-beszúrással; az add compose-t akkor használd, ha tiszta újraépítést akarsz.

go tool gpsystem add compose --force

Ha nincs Dockerfile, a parancs egy jegyzetet ír ki, ami az add docker-re mutat: a compose.yml minden service-e abból épül.

add docker

A többlépcsős Dockerfile-t (development/build/production targetek) és a .dockerignore-t renderli, amelyekhez a compose.yml épít.

go tool gpsystem add docker
go tool gpsystem add docker --force   # mindkét fájl felülírása

Mindkét fájl egyetlen tervben, atomikusan íródik ki: ha akár a Dockerfile, akár a .dockerignore már létezik és nincs --force, az egész futás megszakad írás előtt.

Lokális replace-ek bekötése

Mindkét parancs minden lokálisan replace-elt modul checkout-útvonalát a go.mod replace direktíváiból fejti vissza, ugyanúgy, ahogy a new module teszi: amit a --kit-replace, a --replace és a --replace-dev írt a new project futtatásakor (ez egy contributor/dev-mode funkció; a publikált modulverziókat használó, hétköznapi projekteknek egyáltalán nincs ilyen replace-e). Minden replace-elt modulhoz az add compose/add docker újragenerálja a hozzá tartozó development-target bind-mountot és a build/production-target additional_contexts bejegyzést. Ha egy gépen egyáltalán nincs replace direktíva (a szokásos eset: publikált modulverziókat fogyasztó projekt), ezek a sorok egyszerűen kimaradnak.

Az add compose a modulneveket a gpsystem.yaml modules térképéből olvassa: ugyanabból a forrásból, amelybe a new module ír. Egy nulla modult tartalmazó manifest is megkapja az alap stacket, app service-ek nélkül; egy jegyzet emlékeztet rá, hogy azokat a new module adja hozzá.

Copyright © 2026