Utoljára aktív 5 months ago

這組 Dockerfile 和 docker-compose.yml 範本,幫你輕鬆將 Python 應用程式打包成 Docker 映像檔。它會自動處理相依套件安裝、Playwright 瀏覽器設定,並將程式碼即時同步到容器內,讓你在 Docker 環境下開發、部署都更順手。

timmy gist felülvizsgálása 5 months ago. Revízióhoz ugrás

Nincsenek változtatások

timmy gist felülvizsgálása 5 months ago. Revízióhoz ugrás

2 files changed, 45 insertions

docker-compose.yml(fájl létrehozva)

@@ -0,0 +1,36 @@
1 + # docker-compose.yml
2 +
3 + # 定義你的服務
4 + services:
5 + # 這是你的服務名稱,請改成你專案實際的服務名稱,例如 web-app 或 api-service
6 + your-service-name:
7 + # 告訴 Compose 在當前目錄尋找 Dockerfile 來建構映像檔
8 + build: .
9 + # 指定容器名稱,方便辨識和管理
10 + container_name: your-container-name
11 + # 容器停止或 Docker 服務重啟時,自動重啟此服務
12 + restart: always
13 +
14 + # 掛載卷宗 (volumes) - 將主機上的程式碼映射到容器內部
15 + # 這裡的 ./ 是指 docker-compose.yml 所在目錄 (通常是你的專案根目錄)
16 + # /app 是容器內的工作目錄 (Dockerfile 中設定的 WORKDIR)
17 + # 這樣主機上的程式碼變動會即時反映到容器內,方便開發和偵錯
18 + volumes:
19 + - ./:/app
20 +
21 + # 環境變數 - 載入 .env 檔案中的變數
22 + # docker-compose 預設會自動讀取與 docker-compose.yml 同目錄下的 .env 檔案
23 + env_file:
24 + - .env
25 +
26 + # 這裡不需要 command,因為 Dockerfile 裡面的 CMD 或 ENTRYPOINT 已經指定了啟動命令
27 + # 如果你的服務需要覆寫 Dockerfile 中的 CMD,可以在這裡定義 command:
28 + # command: ["python", "another_main_file.py"]
29 +
30 + # 如果你的服務需要公開埠號,可以在這裡設定 ports:
31 + # ports:
32 + # - "8000:8000" # 將主機的 8000 埠映射到容器的 8000 埠
33 +
34 + # 如果你的服務依賴其他服務(例如資料庫),可以在這裡設定 depends_on:
35 + # depends_on:
36 + # - your-database-service

requirements.txt(fájl létrehozva)

@@ -0,0 +1,9 @@
1 + loguru
2 + opencv-python
3 + numpy
4 + pendulum
5 + Pillow
6 + playwright
7 + pytesseract
8 + python-dotenv
9 + schedule

timmy gist felülvizsgálása 5 months ago. Revízióhoz ugrás

1 file changed, 66 insertions

Dockerfile(fájl létrehozva)

@@ -0,0 +1,66 @@
1 + # Dockerfile
2 +
3 + # 使用 Python 官方的 slim-bookworm 映像作為基礎 (Python 3.12, Debian 12)
4 + # slim 版本比較輕量,適合部署
5 + FROM python:3.12-slim-bookworm
6 +
7 + # 安裝系統依賴套件。這些是常見用於網頁自動化 (Playwright) 和影像處理 (OpenCV) 的依賴。
8 + # 請根據你的專案需求,移除不需要的套件,以減少映像檔大小。
9 + # apt-get update 用來更新套件清單,apt-get install -y --no-install-recommends 安裝指定的套件
10 + # --no-install-recommends 會避免安裝非必要的建議套件
11 + RUN apt-get update && apt-get install -y --no-install-recommends \
12 + build-essential \
13 + libsecret-1-0 \
14 + libgtk-3-0 \
15 + libgdk-pixbuf2.0-0 \
16 + libxss1 \
17 + libasound2 \
18 + libdrm-dev \
19 + libgbm-dev \
20 + libnss3-dev \
21 + libatk-bridge2.0-0 \
22 + libcups2 \
23 + libxrandr2 \
24 + libxcomposite1 \
25 + libxcursor1 \
26 + libxdamage1 \
27 + libxext6 \
28 + libxfixes3 \
29 + libxi6 \
30 + libxrender1 \
31 + libxtst6 \
32 + curl \
33 + gnupg \
34 + ca-certificates \
35 + libgl1 \
36 + tesseract-ocr \
37 + tesseract-ocr-eng \
38 + && rm -rf /var/lib/apt/lists/* # 清理 apt 快取,讓映像檔更小
39 +
40 + # 設定應用程式在容器內的工作目錄
41 + WORKDIR /app
42 +
43 + # 複製你的 Python 依賴清單到工作目錄
44 + COPY requirements.txt ./
45 +
46 + # 安裝 Python 依賴套件
47 + # --no-cache-dir 會避免快取 pip 下載的套件,再次減少映像檔大小
48 + RUN pip install --no-cache-dir -r requirements.txt
49 +
50 + # 如果你的應用程式需要用到 Playwright,這裡會安裝其瀏覽器驅動。
51 + # 如果不需要,你可以把這行註解掉或移除。
52 + # 這會把瀏覽器安裝到 /root/.cache/ms-playwright
53 + RUN python -m playwright install chromium firefox webkit
54 +
55 + # 如果使用 Playwright,設定環境變數,讓 Playwright 知道瀏覽器在哪裡
56 + # 如果不需要 Playwright,這行也可以移除。
57 + ENV PLAYWRIGHT_BROWSERS_PATH=/root/.cache/ms-playwright
58 +
59 + # 複製你的應用程式碼到 Image 中
60 + # 通常會把整個專案複製進去
61 + # 請記得更新這裡的來源和目的地,例如 `COPY . .` 如果你的 Dockerfile 在專案根目錄
62 + # COPY . .
63 +
64 + # 定義容器啟動時執行的命令
65 + # 將 'your_main_app_file.py' 替換成你的主要執行檔名稱
66 + CMD ["python", "your_main_app_file.py"]
Újabb Régebbi