Spaces:
Running
Running
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"]
|