Goアプリをデプロイ
Go Modulesに基づくすべてのプロジェクトをデプロイできます。ただし、プロジェクトのルートディレクトリにmain.goが必要です。それがプログラムのコンパイルエントリとなります。
カスタムビルドエントリーポイント
複数のビルドエントリーポイントがある場合、それらを cmd ディレクトリに配置する必要があります。例えば、cmd/server-a/main.go や cmd/server-b/main.go などです。
Zeabur は cmd ディレクトリ内の Service* 名と同じ名前のビルドエントリーポイントを自動的に認識してデプロイします。
ZBPACK_GO_ENTRY 環境変数を使用してプログラムのコンパイルエントリーポイントを指定することもできます:
ZBPACK_GO_ENTRY=cmd/server-a/main.goまたは、zbpack.json で go.entry を設定することもできます:
{
    "go": {
        "entry": "cmd/server-a/main.go"
    }
}ビルド前コマンドの設定
Go プロジェクトでビルド前に go generate などのコマンドを実行する必要がある場合、ZBPACK_BUILD_COMMAND 環境変数を使用して設定できます。
ZBPACK_BUILD_COMMAND=go generate ./...また、zbpack.json に build_command を設定することもできます:
{
    "build_command": "go generate ./..."
}依存関係のインストールが完了し、ビルドプロセスの前にビルド前コマンドが実行されます。
cgo の有効化
Go プロジェクトで cgo を使用する必要がある場合、zbpack.json に go.cgo を設定できます:
{
    "go": {
        "cgo": true
    }
}または、環境変数 ZBPACK_GO_CGO を設定します:
ZBPACK_GO_CGO=trueZeabur は自動的に cgo を有効化し、必要な C/C++ ツールチェーンをインストールします。
ポートでリッスン
Zeabur は Go プログラムがリッスンする PORT 環境変数を自動的に設定します。
port := os.Getenv("PORT")
if port == "" {
    port = "8080"
}
 
http.ListenAndServe(":"+port, nil)