kamal-proxy の最小要求バージョンを 0.9.2 に更新
Kamal が依存する kamal-proxy の最小要求バージョンが v0.9.0 から v0.9.2 に引き上げられました。
背景
Kamal は内部的に kamal-proxy を使用してリバースプロキシ機能を提供しています。#1763 では、kamal-proxy の新しいリリース(v0.9.2)に合わせて、Kamal 側の最小バージョン要件を更新しています。
技術的な変更
変更の核心は MINIMUM_VERSION 定数の更新です。
変更前:
class Kamal::Configuration::Proxy::Run
MINIMUM_VERSION = "v0.9.0"
変更後:
class Kamal::Configuration::Proxy::Run
MINIMUM_VERSION = "v0.9.2"
この変更により、Kamal は kamal-proxy v0.9.2 以降のイメージを使用するようになります。具体的には、Docker run コマンドで指定されるイメージタグが basecamp/kamal-proxy:v0.9.2 に変更されます。
docker run --name kamal-proxy \
--network kamal \
--detach \
--restart unless-stopped \
--volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy \
--volume $PWD/.kamal/proxy/apps-config:/home/kamal-proxy/.apps-config \
--publish 80:80 \
--publish 443:443 \
--log-opt max-size=10m \
basecamp/kamal-proxy:v0.9.2 kamal-proxy run
影響範囲
この変更はテストコードにも波及しており、以下のファイルが更新されています:
-
test/cli/proxy_test.rb: CLI経由でのプロキシ起動コマンドの検証 -
test/commands/proxy_test.rb: 各種設定オプション(registry、repository、bind_ips、log_max_size、debug、metrics_port)でのコマンド生成の検証 -
test/integration/docker/deployer/setup.sh: 統合テスト環境のセットアップスクリプト
すべてのテストケースで、期待されるイメージタグが v0.9.0 から v0.9.2 に更新されています。
設計判断
Kamal は最小バージョンを定数として管理することで、依存関係を明示的にしています。この定数は設定クラス内に配置されており、バージョン要件の変更時にはこの1箇所を更新するだけで済みます。
また、テストコードでイメージタグを直接検証している点も特徴的です。これにより、設定の変更が実際の Docker コマンドに正しく反映されることを保証しています。