FROM python:3.10-alpine

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ \
    PIP_TRUSTED_HOST=mirrors.aliyun.com \
    POETRY_VERSION=1.8.4 \
    POETRY_NO_INTERACTION=1 \
    TZ=Asia/Shanghai

WORKDIR /root/workspace

RUN MAIN_VERSION=$(cut -d '.' -f 1-2 /etc/alpine-release) \
    && mv /etc/apk/repositories /etc/apk/repositories-bak \
    && { echo "https://mirrors.aliyun.com/alpine/v${MAIN_VERSION}/main"; \
         echo "https://mirrors.aliyun.com/alpine/v${MAIN_VERSION}/community"; } > /etc/apk/repositories \
    && apk add --no-cache tzdata gcc musl-dev libffi-dev \
    && cp /usr/share/zoneinfo/$TZ /etc/localtime \
    && python -m pip install --upgrade pip \
    && pip install "poetry==$POETRY_VERSION" \
    && poetry config virtualenvs.create false

COPY pyproject.toml poetry.lock ./
RUN poetry install --only main --no-root --no-ansi

COPY . .

CMD ["python", "-u", "main.py"]
