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 helpnone
govard initnone
govard project listnone
govard project opennone
govard remote addssh,rsync
govard remote audit statsssh,rsync
govard remote audit tailssh,rsync
govard remote copy-idssh,rsync
govard remote execssh,rsync
govard remote testssh,rsync
govard self-updatenet
govard syncssh,rsync
govard trustnone
govard tunnelcloudflared
govard tunnel startcloudflared
govard tunnel statuscloudflared
govard tunnel stopcloudflared
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|setgovard config profile đọc/ghi cấu hình project; govard config profile cleargovard 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 initgovard custom list.

  • Registry và domain. project listproject open đọc registry; 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 deploygovard 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 trong nhóm deploy là govard deploy sandbox *: 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 statusgovard 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, govard remote audit stats|tail, và govard sync cần SSH và rsync, không cần Docker.

  • Tunnel. govard tunnel start|stop|status điều khiển cloudflared trên host.

  • 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:

bash
govard tunnel status --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.