使用 Python、uv、Caddy 和 Docker 的静态网站
Nik Kantar 逐行详细记录了他基于 Docker 的设置,用于构建和部署大多数静态网站。
我发现这真的很有用。Dockerfile 本身(不带注释)只有 8 行:
FROM ghcr.io/astral-sh/uv:debian AS build WORKDIR /src COPY . . RUN uv python install 3.13 RUN uv run --no-dev sus FROM caddy:alpine COPY Caddyfile /etc/caddy/Caddyfile COPY --from=build /src/output /srv/
他还提供了一个 Caddyfile,展示了如何将部分请求代理到 Plausible 分析服务。FROM ghcr.io/astral-sh/uv:debian AS build WORKDIR /src COPY . . RUN uv python install 3.13 RUN uv run --no-dev sus FROM caddy:alpine COPY Caddyfile /etc/caddy/Caddyfile COPY --from=build /src/output /srv/
静态站点是使用他的sus包构建的,用于创建静态 URL 重定向站点,但对于您可以安装并运行uv run
另一个静态站点生成器也同样适用。
Nik 使用Coolify部署他的网站,对于我来说,Coolify 是 Heroku/Vercel 模式的自托管替代方案,它有助于使用 Docker 容器在一组主机上运行多个网站。
许多Hacker News 的评论认为这是过度设计。但我认为这种批评并不合理——考虑到 Nik 现有的部署环境,我认为这是一种轻量级的静态网站部署方式,并且与他目前运行的其他系统保持一致。
更重要的是,世界需要更多这样的文章来分解配置文件并解释每一行的作用。
来源: Hacker News
原文: https://simonwillison.net/2025/Aug/24/uv-caddy-and-docker/#atom-everything