前言 / Introduction

如果你也像我一樣,平時喜歡建構 Docker 的 container 並使用 uv 進行 Python 專案開發,那你一定不能錯過 uv 的官方 Image。 這篇文章將帶你了解如何快速上手,並示範一些實用的應用方式。

官方 Docker Image

官方提供了 uv 的 container 版本,你可以直接使用官方 Image 來快速建立開發環境:

docker pull ghcr.io/astral-sh/uv:0.8.13

你也可以在 Dockerfile 中直接使用:

FROM ghcr.io/astral-sh/uv:0.8.13

WORKDIR /app

COPY . /app

# 安裝依賴
RUN uv install

# 啟動專案
CMD ["uv", "run"]

在 Container 中使用 uv 的好處

  • 環境一致性:無論是在開發、測試還是生產環境,都可以保證專案運行一致。
  • 快速部署:只需要拉取官方 Image,就可以立即開始開發,省去環境配置時間。
  • 便於 CI/CD:在 CI/CD 流程中使用 uv container,可以統一 build、test、deploy 流程。
  • 易於擴展:可以在 Docker Compose 中搭配其他服務,例如 PostgreSQL、Redis 等,輕鬆組建完整開發環境。
  • 避免採坑:官方 container 已經幫你處理了 uv 的環境變數和依賴設定。

範例:快速啟動 Python 專案

  1. 建立專案資料夾並進入:
mkdir my-uv-project
cd my-uv-project
  1. 啟動 uv container:
docker run -it --rm -v $(pwd):/app -w /app ghcr.io/astral-sh/uv:0.8.13 uv init
  1. 建立虛擬環境並安裝依賴:
docker run -it --rm -v $(pwd):/app -w /app ghcr.io/astral-sh/uv:0.8.13 uv install
  1. 運行專案:
docker run -it --rm -v $(pwd):/app -w /app ghcr.io/astral-sh/uv:0.8.13 uv run

這樣就可以在完全隔離的 container 環境中開發和測試你的 Python 專案。

結語

使用 uv 官方 container 可以讓 Python 專案開發更加快速、乾淨且可重現。無論你是個人開發者還是團隊協作,這種方式都能大幅提升開發效率,並簡化環境配置。

更多資源可以參考官方文件:

如果你想進一步優化 Docker build 時間與 image 大小,請參考進階篇:Optimizing uv Docker Builds