File size: 1,682 Bytes
2480172 15a0091 29963c4 2480172 29963c4 2480172 29963c4 2480172 29963c4 2480172 143771e 29963c4 2480172 29963c4 bca2431 29963c4 bca2431 2480172 29963c4 143771e 29963c4 143771e 29963c4 051d5fd e658d6b b491a76 e658d6b 2480172 29963c4 2480172 29963c4 |
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# ベースイメージ
FROM python:3.11 AS base
# Build環境用イメージ
FROM base AS builder
# 作業ディレクトリの設定
WORKDIR /usr/src/app
# 必要なファイルをコピー
COPY ./requirements.txt /usr/src/app
# Build用依存関係のインストール
RUN apt-get update && apt-get install -y \
gcc \
libffi-dev \
libssl-dev \
libxml2-dev \
libxslt1-dev \
build-essential \
cargo \
rustc \
python3.11-dev \
&& rm -rf /var/lib/apt/lists/*
# Pythonライブラリのインストール
RUN pip install --no-cache-dir --upgrade pip setuptools wheel
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
# Runtime環境用イメージ
FROM base
# ユーザー作成と変更
RUN groupadd -r appgroup && useradd -r -g appgroup appuser
USER appuser
WORKDIR /usr/src/app
# builderフェーズから依存関係をコピー
COPY --from=builder /install /usr/local
# ソースコードと環境ファイルをコピー
COPY . .
COPY .env /usr/src/app/.env
# SQLiteデータベース用のディレクトリ作成と権限設定
RUN mkdir -p /usr/src/app \
&& chmod 777 /usr/src/app
# Flask DBマイグレーションの初期化
RUN flask db init || true # 既にmigrationsが存在する場合はエラーを無視
RUN flask db migrate || true # 初期状態で変更がない場合もエラーを無視
# SQLiteデータベース用のディレクトリ作成と権限設定
RUN mkdir -p /usr/src/app/app.db \
&& chmod 777 /usr/src/app/app.db
# Flaskアプリの実行コマンド
CMD flask db upgrade && gunicorn -b 0.0.0.0:5000 -w 4 yotter:app
# 必要なポートをExpose
EXPOSE 5000
|