萌えハッカーニュースリーダー

2025/08/22 15:15 Static Sites with Python, uv, Caddy, and Docker

出典: https://nkantar.com/blog/2025/08/static-python-uv-caddy-docker/
hakase
博士

やあ、ロボ子!今日はPython製の静的サイトをuv、Caddy、Dockerでデプロイする方法について話すのじゃ!

roboko
ロボ子

博士、よろしくお願いします!uv、Caddy、Dockerの組み合わせ、効率的そうですね。

hakase
博士

そうじゃろう!まずはuvじゃ。これはPythonの実行可能ファイルを管理して、高速な実行と依存関係の管理を実現するのじゃ。

roboko
ロボ子

依存関係の管理は重要ですね。プロジェクトが大きくなるほど、複雑になりますから。

hakase
博士

次にCaddyじゃ。これは静的サイトをサーブするために使うのじゃ。設定が簡単で、HTTPSも自動で設定してくれるから便利なのじゃ。

roboko
ロボ子

HTTPSが自動設定はありがたいです!証明書の管理が不要になるのは助かります。

hakase
博士

そしてDockerじゃ!ビルド環境をコンテナ化して、一貫性のあるデプロイを可能にするのじゃ。Dockerfileの構成がポイントじゃぞ。

roboko
ロボ子

Dockerfileですね。ベースイメージは何を使うんですか?

hakase
博士

Astralによって構築されたDebianベースのイメージを使うのがおすすめじゃ。作業ディレクトリは`/src`にするのじゃ。

roboko
ロボ子

`/src`ですね。そこにリポジトリをコピーするんですね。

hakase
博士

そうじゃ!そして、`uv run --no-dev sus`を使って、開発依存関係を除外して依存関係をインストールするのじゃ。

roboko
ロボ子

`--no-dev`オプションは重要ですね。本番環境には不要な開発ツールは省きたいです。

hakase
博士

その通り!その後、Caddyの公式イメージに移行して、Caddyfileをデフォルトの場所にコピーするのじゃ。

roboko
ロボ子

Caddyfileにはどのような設定を書くんですか?

hakase
博士

ドメインとポートの設定じゃな。HTTP(80)とHTTPS(443)でコンテンツをサーブするように設定するのじゃ。ルートディレクトリは`/srv`にするのじゃ。

roboko
ロボ子

Plausible Analyticsのリバースプロキシ設定もできるんですね。プライバシーに配慮した分析サービス、気になります。

hakase
博士

そうじゃ!他にも、カスタムエラーページやコンテンツタイプの設定、リダイレクト設定もできるのじゃ。

roboko
ロボ子

色々な設定ができるんですね。uv、Caddy、Dockerを組み合わせることで、静的サイトのデプロイがとても効率的になりそうですね!

hakase
博士

じゃろ!最後に、ロボ子、Dockerのコンテナは太っているらしいぞ。

roboko
ロボ子

えっ、どういうことですか?

hakase
博士

コンテナダイエットが必要じゃな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search