syurein commited on
Commit
0d8dc4f
·
1 Parent(s): 68c46ce

dockerfileのアップデート

Browse files
Files changed (2) hide show
  1. Dockerfile +29 -14
  2. requirements.txt +2 -1
Dockerfile CHANGED
@@ -1,30 +1,45 @@
1
- # Python 3.10.9の公式イメージを使用
2
- FROM python:3.10.9
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  # 作業ディレクトリを /app に設定
5
  WORKDIR /app
6
 
7
- # 現在のディレクトリの内容をコンテナ内の /app にコピー
8
- COPY . .
 
 
9
 
10
- # OpenCVやその他の依存関係をインストール
11
- RUN apt-get update && apt-get install -y libgl1 libglib2.0-0 curl
 
12
 
13
- # パーミッションの問題を避けるため、ユーザーを作成
14
- RUN useradd -m appuser
15
 
16
- # saved_imagesディレクトリを作成し、appuserに書き込み権限を付与
17
- RUN mkdir -p /app/saved_images && chown -R appuser:appuser /app /app/saved_images
 
 
 
18
 
19
  # 非rootユーザーに切り替え
20
  USER appuser
21
 
22
  # /home/appuser/.local/bin を PATH に追加
23
  ENV PATH="/home/appuser/.local/bin:${PATH}"
24
-
25
- # Pythonの依存関係をインストール
26
- RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
27
-
28
  # FastAPIアプリの環境変数を設定
29
  ENV PYTHONPATH=/app
30
 
 
1
+ # ステップ1: ベースイメージ
2
+ # 元のバージョンを尊重しつつ、より軽量なslimイメージを使用
3
+ FROM python:3.10.9-slim
4
+
5
+ # ステップ2: システム依存関係のインストール (rootユーザーで実行)
6
+ # OpenCV, Playwright, curlに必要なライブラリをまとめてインストール
7
+ RUN apt-get update && apt-get install -y --no-cache-recommends \
8
+ # OpenCV dependencies
9
+ libgl1-mesa-glx \
10
+ libglib2.0-0 \
11
+ # Playwright dependencies
12
+ libnss3 libnspr4 libdbus-1-3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libatspi2.0-0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libpango-1.0-0 libcairo2 libasound2 \
13
+ # Other dependencies from original Dockerfile
14
+ curl \
15
+ && rm -rf /var/lib/apt/lists/*
16
 
17
  # 作業ディレクトリを /app に設定
18
  WORKDIR /app
19
 
20
+ # ステップ3: Python依存関係のインストール (キャッシュ効率化のため先に実行)
21
+ # requirements.txtを先にコピーすることで、このレイヤーのキャッシュが効きやすくなります
22
+ COPY requirements.txt .
23
+ RUN pip install --no-cache-dir -r requirements.txt
24
 
25
+ # ステップ4: Playwrightブラウザのインストール
26
+ # 依存関係はステップ2でインストール済み
27
+ RUN playwright install chromium
28
 
29
+ # ステップ5: アプリケーションコードのコピー
30
+ COPY . .
31
 
32
+ # ステップ6: ユーザーの作成と権限設定
33
+ # root権限が必要な処理を先に済ませてからユーザーを作成・切り替え
34
+ RUN useradd -m appuser
35
+ # /app ディレクトリ全体の所有権を appuser に変更 (saved_imagesも含まれる)
36
+ RUN chown -R appuser:appuser /app
37
 
38
  # 非rootユーザーに切り替え
39
  USER appuser
40
 
41
  # /home/appuser/.local/bin を PATH に追加
42
  ENV PATH="/home/appuser/.local/bin:${PATH}"
 
 
 
 
43
  # FastAPIアプリの環境変数を設定
44
  ENV PYTHONPATH=/app
45
 
requirements.txt CHANGED
@@ -73,4 +73,5 @@ supervision
73
  onnxruntime
74
  google-genai
75
  python-dotenv
76
-
 
 
73
  onnxruntime
74
  google-genai
75
  python-dotenv
76
+ playwright
77
+ beautifulsoup4