從原始碼建置
如果您需要自訂建置版本 (例如,包含外掛模組),有多種選項可以建置 Caddy
需求條件
- Go 1.20 或更新版本
套件支援檔案 章節包含給使用 APT 命令在 Debian 衍生系統上安裝 Caddy,但因操作需要自訂建置執行檔的使用者的指示。
Git
需求條件
- 已安裝 Go (請參閱上方)
複製儲存庫
git clone "https://github.com/caddyserver/caddy.git"
如果您沒有 git,您可以從 GitHub 下載原始碼作為檔案封存檔。每個發行版本也都有原始碼快照。
建置
cd caddy/cmd/caddy/
go build
Go 程式很容易為其他平台編譯。只需設定不同的 GOOS
、GOARCH
和/或 GOARM
環境變數即可。(詳細資訊請參閱 go 文件。)
例如,要在您不是在 Windows 上時為 Windows 編譯 Caddy
GOOS=windows go build
或者類似地,當您不是在 Linux 或 ARMv6 上時,為 Linux ARMv6 編譯 Caddy
GOOS=linux GOARCH=arm GOARM=6 go build
xcaddy
xcaddy
命令是以版本資訊和/或外掛模組建置 Caddy 的最簡單方法。
需求條件
- 已安裝 Go (請參閱上方)
- 請確保
xcaddy
在您的PATH
中
您不需要下載 Caddy 原始碼 (它會為您執行此操作)。
然後建置 Caddy (包含版本資訊) 就和以下指令一樣簡單
xcaddy build
若要使用外掛模組建置,請使用 --with
xcaddy build \
--with github.com/caddyserver/nginx-adapter
--with github.com/caddyserver/ntlm-transport@v0.1.1
如您所見,您可以使用 @
語法自訂外掛模組的版本。版本可以是標籤名稱、commit SHA 或分支。
使用 xcaddy
進行跨平台編譯的方式與使用 go
命令相同。例如,要為 macOS 進行跨平台編譯
GOOS=darwin xcaddy build
Docker
您可以使用 :builder
映像檔作為捷徑,以使用自訂模組建置新的 Caddy 二進位檔
FROM caddy:<version>-builder AS builder
RUN xcaddy build \
--with github.com/caddyserver/nginx-adapter \
--with github.com/hairyhenderson/caddy-teapot-module@v0.0.3-0
FROM caddy:<version>
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
請務必將 <version>
替換為最新的 Caddy 版本以開始。
請注意第二個 FROM
指令 — 這會產生更小的映像檔,方法是簡單地將新建立的二進位檔覆蓋在常規 caddy
映像檔之上。
建置器使用 xcaddy
建置具有所提供模組的 Caddy,類似於上方概述的程序。
若要使用 Docker Compose,請參閱我們建議的 compose.yml
和使用說明。
Debian/Ubuntu/Raspbian 自訂建置的套件支援檔案
此程序旨在簡化執行自訂 caddy
二進位檔,同時保留 caddy
套件中的支援檔案。
此程序允許使用者利用官方套件中的預設設定、systemd 服務檔案和 bash-completion。
需求條件
程序
sudo dpkg-divert --divert /usr/bin/caddy.default --rename /usr/bin/caddy
sudo mv ./caddy /usr/bin/caddy.custom
sudo update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.default 10
sudo update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.custom 50
sudo systemctl restart caddy
說明
-
dpkg-divert
會將/usr/bin/caddy
二進位檔移動到/usr/bin/caddy.default
,並在有任何套件想要將檔案安裝到此位置時放置一個轉向。 -
update-alternatives
會建立從所需的 caddy 二進位檔到/usr/bin/caddy
的符號連結 -
systemctl restart caddy
將關閉預設版本的 Caddy 伺服器並啟動自訂版本。
您可以透過執行以下指令,並按照螢幕上的資訊在自訂和預設 caddy
二進位檔之間切換。然後,重新啟動 Caddy 服務。
update-alternatives --config caddy
若要在此之後升級 Caddy,您可以執行 caddy upgrade
。這會嘗試下載與您目前建置版本具有相同外掛模組,以及最新版本 Caddy 的建置版本,然後將目前的二進位檔替換為新的二進位檔。