從原始碼建置
如果您需要自訂建置(例如,使用外掛程式),則有多種建置 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
GOOS=linux GOARCH=arm GOARM=6 go build
xcaddy
xcaddy
命令 是使用版本資訊和/或外掛程式來建置 Caddy 的最簡單方法。
需求
- 已安裝 Go(請參閱上方)
- 請確定您的
PATH
中有xcaddy
您不需要下載 Caddy 原始碼(它會為您執行此動作)。
然後,建置 Caddy(含版本資訊)就像這樣簡單
xcaddy build
若要使用外掛程式建置,請使用 --with
xcaddy build \
--with github.com/caddyserver/nginx-adapter
--with github.com/caddyserver/ntlm-transport@v0.1.1
如您所見,您可以使用 @
語法自訂外掛程式的版本。版本可以是標籤名稱、提交 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 完成。
需求
程序
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,然後用新的二進位檔取代目前的二進位檔。