FROM python:3.10 AS develop

RUN apt-get update \
    && apt-get install -y tzdata \
    && apt-get install -y python3-pip \
    && apt-get clean
RUN pip3 install poetry \
    && poetry config virtualenvs.create false

## Node.jsインストール(for Web Frontend 開発)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y nodejs \
    && apt-get clean

ENV SHELL=/bin/bash
ENV TZ=Asia/Tokyo
WORKDIR /workspaces

## ------------------------
## ビルド処理.
## Webフロントエンドのビルド
FROM develop AS builder

COPY pyproject.toml poetry.lock ./
COPY frontend/  frontend/
COPY serverApp/ serverApp/

RUN (cd /workspaces && poetry install)
RUN (cd /workspaces/frontend && npm install && npm run build)

## ------------------------
## 実行用のイメージ
## ビルドされたWebページのみを使うため、Node.jsの環境が不要.
FROM python:3.10 AS production

WORKDIR /workspaces
COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages/
COPY --from=builder /workspaces/serverApp /workspaces/serverApp 

ENV TZ=Asia/Tokyo
CMD [ "/usr/local/bin/python3", "-u", "serverApp/server_app.py" ]
