# builder image
ARG BASE_IMAGE
FROM ${BASE_IMAGE} AS builder

ARG INDEX_URL
RUN echo "INDEX_URL: ${INDEX_URL}"
WORKDIR /app
COPY plugin_server .
RUN pip install uv -i ${INDEX_URL}
RUN sed -i "s#url = \"https://mirrors.aliyun.com/pypi/simple/\"#url = \"${INDEX_URL}\"#g" pyproject.toml

RUN uv sync --group dev
RUN uv build --out-dir /app/dist


# runtime image
ARG BASE_IMAGE
FROM ${BASE_IMAGE} AS runtime

ARG INDEX_URL
ARG TRUSTED_HOST
RUN echo "INDEX_URL: ${INDEX_URL}"
RUN echo "TRUSTED_HOST: ${TRUSTED_HOST}"
RUN useradd --create-home --shell /bin/bash app
RUN mkdir -p /app/dist
RUN chown -R app:app /app

USER app
WORKDIR /app
COPY --from=builder /app/dist/openjiuwen_plugin_server-0.1.0-py3-none-any.whl /app/dist
RUN pip3 install /app/dist/openjiuwen_plugin_server-0.1.0-py3-none-any.whl --trusted-host ${TRUSTED_HOST} --index-url ${INDEX_URL} --target=/app/site-packages --retries=5 --timeout=120
ENV PYTHONPATH=/app/site-packages/openjiuwen_plugin_server:/app/site-packages

EXPOSE 8185
# Health check with configurable port
HEALTHCHECK --interval=30s --timeout=30s --start-period=30s --retries=5 \
    CMD curl -f http://localhost:8185/system/health || exit 1

CMD ["python", "-m", "openjiuwen_plugin_server.run_restful", "--port", "8185"]