systemdとコンテナ
ネイティブホストにはsystemd、隔離デプロイにはrootlessコンテナを使います。
Rootless Podman実行
podman run --name fluxheim --replace \
-p 8080:8080 \
-v ./fluxheim.toml:/etc/fluxheim/fluxheim.toml:ro \
-v ./site:/srv/site:ro \
-v fluxheim-cache:/var/cache/fluxheim \
ghcr.io/valkyoth/fluxheim:v1.8.0
コンテナマウント
| マウント | Recommended mode |
|---|---|
| 設定 | 読み取り専用bind mount。 |
| 静的コンテンツ | 読み取り専用bind mount。 |
| ACME状態の保存先 | 永続的な書き込み可能ボリューム。 |
| Disk cache | cache policy に見合う容量の永続 writable volume を用意してください。storage-bin の各 replica には専用の local volume または RWO volume を割り当て、共有 RWX storage は node 間 locking が検証済みで orchestration 側でも single-writer が強制される場合に限って使用します。 |
| シークレット | 公開ファイルではなく、コンテナシークレットまたは認証情報ディレクトリ。 |
systemdの流れ
fluxheim --config /etc/fluxheim/fluxheim.toml --check-config
sudo systemctl restart fluxheim
sudo systemctl status fluxheim
journalctl -u fluxheim -n 100 --no-pager
無停止アップグレード
systemd ソケットアクティベーションを使うと、Fluxheim が新しいプロセスを検証し、処理中の接続が完了するのを待つ間も、公開待受ソケットを利用できます。ホストポートを直接公開したコンテナは待受停止を挟まずに置き換えられないため、安定したフロントプロキシ、ロードバランサー、またはオーケストレーターが必要です。
アップグレード仕様の全文を読む本番チェックリスト
- リリースバージョンまたはイメージダイジェストを固定します。
- 設定とコンテンツは読み取り専用でマウントします。
- Keep ACME and cache state on persistent volumes.
- 実行予定のプロファイルに対して設定を検証します。
- トラフィックを変更する前にヘルスチェックとロールバックコマンドを用意します。