Kamalで既存イメージをデプロイする(現状)最適解

Published on 2024-10-28
Updated on 2024-10-28

みなさん Kamal 使ってますか?

多分この記事で有名になったと思うんですけど

Kamal 2 を使い、インフラに詳しくない人でもNext.jsを296円のVPSにデプロイできるよう、説明してみる - Naofumi

これを使って、開発中のプロダクトではなく単に既存イメージをデプロイする場合どう書くとメンテしやすいかなーと試行錯誤してたら、いい感じの方法を見つけたので共有させて頂きます。

準備

手順

  1. kamal init でコンフィグ等を生成
  2. FROM でイメージをタグ付きで指定した Dockerfile を作成 (コンフィグファイル等がある場合は適宜 COPY すること)
  3. config/deploy.yml を編集 (詳細は後述)
  4. kamal setup でデプロイ

config/deploy.yml の編集箇所

service, image, servers, registry はコメントアウトを読めば理解できると思うので割愛します。

proxy

スクリーンショット2024-10-28001601.png.webp

host, app_port はコメントアウト通りに編集すればよいのですが、ヘルスチェックがデフォルトで /up に対して走るので、大半のアプリケーションでエラーが起きます。

proxy.healthcheck.path を指定することで、このパスを編集できます。

https://kamal-deploy.org/docs/configuration/proxy/#healthcheck

builder

スクリーンショット2024-10-28001644.png.webp

builder.context を指定することで、docker build のベースパスを指定してビルドできます。

ごらんの有様だよ!!!

で、が産まれたってわけ。

Docker ComposeでDBを待機してから接続する(healthcheck)

Published on 2025-03-24
Updated on 2025-03-24
開発
Docker

ブログを作り直した

Published on 2025-03-23
Updated on 2025-03-23
ブログ
開発

Cline + DeepSeek R1 + Cody で格安AIコーディング

Published on 2025-01-23
Updated on 2025-01-23
開発
AI
Cline
Cody
免責事項 プライバシーポリシー