FROM python:3.8-buster as base
RUN pip install poetry

ENV POETRY_VERSION=1.0.0 \
  PATH="/root/.poetry/bin:$PATH"

RUN curl -sSL https://raw.githubusercontent.com/sdispater/poetry/${POETRY_VERSION}/get-poetry.py | python && \
    poetry config virtualenvs.create false

WORKDIR /workspace/backend

ADD backend/pyproject.toml .
ADD backend/poetry.lock    .
RUN poetry install --no-dev

## ここから開発用コンテナの設定.
FROM base as devcontainer

RUN apt update 
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt install -y nodejs

WORKDIR /workspace/frontend
RUN npm install -g @vue/cli

WORKDIR /workspace/backend
RUN poetry install
EXPOSE 8080 8082

## ここからアプリ実行用コンテナの設定.
#FROM python:3.8-slim-buster as app
# 開発コンテナと同じものを使う場合.
FROM python:3.8-buster as app   
EXPOSE 8080

WORKDIR /workspace/backend
COPY --from=base /usr/local/lib/python3.8/site-packages /usr/local/lib/python3.8/site-packages

COPY backend/ .

ENV FLASK_APP /workspace/backend/app.py
CMD [ "python", "-m", "flask", "run", "-h", "0.0.0.0", "-p", "8080" ]

# MySQLデータベース用設定.
FROM mysql:5.7 as app-db
EXPOSE 3306

ADD ./backend/db/my.cnf /etc/mysql/my.cnf
RUN chmod 644 /etc/mysql/my.cnf

COPY ./backend/db/initdb.d/00-initdb.sql /docker-entrypoint-initdb.d/
COPY ./backend/db/initdb.d/01-feed-data.sql /docker-entrypoint-initdb.d/


