File size: 1,952 Bytes
0d8dc4f
 
 
0abdd81
 
 
0d8dc4f
 
 
398d633
0d8dc4f
 
82291b8
6b563fb
dd1ea38
 
0d8dc4f
 
 
94a72a9
6bd43d6
 
 
 
 
0d8dc4f
6bd43d6
0d8dc4f
10efcee
0d8dc4f
 
281bf23
0d8dc4f
 
6bd43d6
 
0d8dc4f
6bd43d6
6b563fb
82291b8
 
6b563fb
82291b8
398d633
6b563fb
dd1ea38
82291b8
6b563fb
94a72a9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# ステップ1: ベースイメージ
FROM python:3.10.9-slim

# ステップ2: システム依存関係のインストール (rootユーザーで実行)
# OpenCV, Playwright, curlに必要なライブラリをまとめてインストール
RUN apt-get update && apt-get install -y --no-install-recommends \
    libgl1-mesa-glx \
    libglib2.0-0 \
    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 \
    libxkbcommon0 \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 作業ディレクトリを /app に設定
WORKDIR /app

# ステップ3: Python依存関係のインストール (キャッシュ効率化のため先に実行)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# --- ここに新しい行を追加 ---
# Playwrightのブラウザが appuser のキャッシュディレクトリにインストールされるように環境変数を設定
# /home/appuser は後で作成されるため、ここでは /app/.cache を指定
ENV PLAYWRIGHT_BROWSERS_PATH="/app/.cache/ms-playwright"

# ステップ4: Playwrightブラウザのインストール
# このステップは root ユーザーで実行される
RUN playwright install chromium

# ステップ5: アプリケーションコードのコピー
COPY . .

# ステップ6: ユーザーの作成と権限設定
RUN useradd -m appuser
# /app ディレクトリ全体の所有権を appuser に変更
# これにより、/app/.cache も appuser がアクセスできるようになります
RUN chown -R appuser:appuser /app

# 非rootユーザーに切り替え
USER appuser

# /home/appuser/.local/bin を PATH に追加
ENV PATH="/home/appuser/.local/bin:${PATH}"

# FastAPIアプリの環境変数を設定
ENV PYTHONPATH=/app

# FastAPIアプリの起動
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]