Using uv With Container

前言 / 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 專案 建立專案資料夾並進入: mkdir my-uv-project cd my-uv-project 啟動 uv container: docker run -it --rm -v $(pwd):/app -w /app ghcr.io/astral-sh/uv:0.8.13 uv init 建立虛擬環境並安裝依賴: docker run -it --rm -v $(pwd):/app -w /app ghcr.io/astral-sh/uv:0.8.13 uv install 運行專案: docker run -it --rm -v $(pwd):/app -w /app ghcr.io/astral-sh/uv:0.8.13 uv run 這樣就可以在完全隔離的 container 環境中開發和測試你的 Python 專案。 ...

August 24, 2025 · 1 min · 152 words · Daniel Ho

Tech Share Uv

前言 / Introduction Why I Switched to uv Instead of Anaconda Recently, I discovered uv — a lightning-fast Python package and environment manager built in Rust. After trying it out in a few projects, I realized: Anaconda is not useful to me anymore. Here’s why I made the switch and how it improved my Python workflow. 最近我發現了uv,一個由Rust編寫的輕量化Python 套件與環境管理器。嘗試在我的幾個小專案使用後,竟發現:Anaconda 不會再是我的首選。 所以這篇文章想和大家聊聊,我為什麼選擇轉換,以及uv帶來哪些實際改善。 The Problem with Anaconda (for Me) Anaconda’s installation is heavy - even Miniconda is too bulky Package installation with pip install is painfully slow Unable to change Python versions in existing virtual environments Virtual environments can’t be easily shared across different workspaces 基於上面幾個痛點,總是讓我對Anaconda恨得牙癢癢的,但又離不開它,直到我遇見了uv。 ...

May 5, 2025 · 2 min · 215 words · Daniel Ho