Skip to content

Chạy không cần Docker ​

Govard cài và chạy được trên máy không có container runtime. Mỗi lệnh khai báo yêu cầu của nó trong manifest của binary, và govard capabilities in ra tập đã phân giải cho đúng máy bạn đang dùng — output đó là nguồn sự thật, trang này chỉ phản chiếu lại.

bash
govard capabilities          # lệnh, yêu cầu, trạng thái trên máy này
govard capabilities --json   # machine-readable (schema_version 1)

Các lệnh không cần Docker ​

LệnhYêu cầu
govard audit cleanupnone
govard audit diffnone
govard audit rerunnone
govard audit resultnone
govard audit runnone
govard audit statusnone
govard blueprintnone
govard blueprint cachenone
govard blueprint cache clearnone
govard blueprint cache listnone
govard capabilitiesnone
govard completion bashnone
govard completion fishnone
govard completion powershellnone
govard completion zshnone
govard confignone
govard config getnone
govard config profilenone
govard config profile clearnone
govard config setnone
govard customnone
govard custom listnone
govard deployssh,rsync
govard deploy buildnone
govard deploy checkssh
govard deploy plannone
govard deploy releasesssh
govard deploy rollbackssh,rsync
govard deploy statusssh
govard deploy unlockssh
govard desktop doctornone
govard doctornone
govard doctor trustnone
govard domain listnone
govard gateway allow-keynone
govard gateway revoke-keynone
govard helpnone
govard initnone
govard project listnone
govard project opennone
govard remote addssh,rsync
govard remote audit statsnone
govard remote audit tailnone
govard remote copy-idssh,rsync
govard remote execssh,rsync
govard remote listnone
govard remote testssh,rsync
govard self-updatenet
govard syncssh,rsync
govard trustnone
govard tunnelnone
govard tunnel startcloudflared
govard tunnel statusnone
govard tunnel stopnone
govard versionnone
govard vscode setupnone

Cột Yêu cầu là đúng token mà govard capabilities báo:

TokenÝ nghĩa
noneKhông cần gì ngoài binary Govard.
ssh,rsyncCần SSH client và rsync. Vẫn không cần container runtime.
cloudflaredCần binary cloudflared, cho tunnel. Vẫn không cần container runtime.
netCần kết nối mạng ra ngoài, cho self-update. Vẫn không cần container runtime.

Những lệnh có yêu cầu bao gồm docker thì đi qua gate: vòng đời stack (env, restart, down, ps, logs, svc, db, shell, tool, test, frontend), phần quản lý project/domain có chạm container (project delete, project orphans, domain add, domain remove), các wrapper vscode <tool>, deploy, bootstrap, debug, mở desktop, và các nhánh audit cần container (audit toolchain, audit run --checks lint, audit run --checks profiler).

Tính năng không cần Docker ​

  • Phân tích không cần container. govard audit run --checks integrity (Magento 2 / Mage-OS) đọc trực tiếp checkout bằng analyzer Go — Composer manifest/lock có khớp nhau, tính nhất quán module/DI/sequence — không Docker, không PHP, không toolchain image. Phần còn lại của vòng đời audit cũng chạy trên host: status, result, cleanup, diff. rerun chạy lại đúng bộ check đã ghi trong session, nên rerun một session lint/profiler vẫn cần Docker.

  • Chẩn đoán. govard doctor chạy ở mọi nơi; Docker chỉ là một check tùy chọn và thiếu nó không làm lệnh fail (--strict khôi phục hard gate cho script bootstrap). govard trust cài CA nội bộ vào trust store của máy.

  • Cấu hình. govard config get|set và govard config profile đọc/ghi cấu hình project; govard config profile clear và govard blueprint cache list|clear làm việc trên file và cache local. Áp profile vào stack đang chạy (config profile apply|switch), govard config auto (nó cấu hình framework bên trong container) và mọi lệnh govard lock là việc của container: lock file ghi lại version docker/compose đã phân giải và digest image của từng service.

  • Khởi tạo project. govard init và govard custom list.

  • Registry và domain. project list và project open đọc registry (project list hiển thị trạng thái unknown khi không có Docker); domain list in ra domain của project; vscode setup suy ra cấu hình editor từ chính file của project. project orphans quét tài nguyên Docker nên vẫn cần runtime.

  • Triển khai. govard deploy và govard deploy rollback cần SSH và rsync; govard deploy build cũng không cần gì: đây là nửa CI của artifact mode, chạy trên runner có toolchain của dự án và không hề kết nối tới server. Chính sự tách đôi này cho phép job deploy chỉ cần govard, SSH và rsync — không PHP, không Composer, không container runtime. Ngoại lệ duy nhất là govard sandbox *, giờ là lệnh top-level: nó tạo một container đóng vai target, tức là việc của container runtime theo đúng định nghĩa, và đó là cách duy nhất để một buổi diễn tập dùng chung code path với production. govard deploy check, govard deploy releases, govard deploy status và govard deploy unlock chỉ cần SSH. govard deploy plan không cần gì cả: nó đọc .govard.yml và in kế hoạch thực thi mà không kết nối đi đâu. Rollback chỉ trỏ lại symlink hoặc chạy lại phần publish từ thư mục release đã có trên server, nên không cần toolchain build ở máy local.

  • Remote và đồng bộ. govard remote add|test|copy-id|exec và govard sync cần SSH và rsync, không cần Docker; riêng govard sync --db và --full chuyển database qua container DB local nên cần thêm container runtime (thiếu thì trả exit 3 CAPABILITY_MISSING), còn --plan thì không. govard remote list chỉ đọc cấu hình project và govard remote audit stats|tail chỉ đọc log audit local, nên không cần gì cả.

  • Tunnel. govard tunnel start chạy cloudflared trên host. govard tunnel stop và govard tunnel status chỉ đọc bản ghi PID mà govard giữ, nên không cần cloudflared.

  • Self-update, help, completion. govard self-update chỉ cần mạng; govard version, govard help, và govard completion bash|zsh|fish|powershell không cần gì cả.

Khi thiếu capability ​

Gate từ chối trước khi lệnh làm bất cứ việc gì, và nói rõ thiếu gì:

Mã thoátÝ nghĩa
0Thành công.
1Lệnh đã chạy và thất bại.
2Lỗi usage: flag lạ hoặc tham số không hợp lệ.
3CAPABILITY_MISSING — một yêu cầu đã khai báo không có sẵn.
4Lỗi cấu hình.

--error-json in lỗi ra stdout dưới dạng envelope machine-readable (schema_version, code, capability, command, message, hint), nên script không phải parse dạng text. Khi dùng cờ này, mọi dòng dành cho người đọc chuyển sang stderr, stdout chỉ chứa document (xem Global Flags trong tài liệu CLI):

bash
govard tunnel start --error-json
# {"schema_version":1,...,"error":{"code":"CAPABILITY_MISSING","capability":"cloudflared",...}}

Một check audit cần container sẽ chỉ thẳng sang lựa chọn không cần container:

bash
govard audit run --checks lint
# Hint: run `govard audit run --checks integrity` for container-free analysis on this host

Liên quan ​

  • Cài đặt — cài và chạy CLI không cần Docker.
  • Audit — check integrity và nhánh lint cần container.
  • Lệnh CLI — tham chiếu đầy đủ.

Phát hành theo giấy phép MIT.