mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
80 lines
2.5 KiB
Plaintext
80 lines
2.5 KiB
Plaintext
FROM debian:bookworm-slim as stage-base
|
|
ARG DEPENDENCIES=" \
|
|
python3-pip \
|
|
python3.11-mini \
|
|
python3.11-venv"
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends $DEPENDENCIES && \
|
|
apt-get clean all && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /opt/maxkb/app
|
|
RUN mkdir -p /opt/maxkb/app /opt/maxkb/model /opt/maxkb/conf && \
|
|
cp -f /opt/maxkb/app/installer/config.yaml /opt/maxkb/conf && \
|
|
rm -rf /opt/maxkb/app/ui
|
|
|
|
FROM python:3.11-slim-bookworm as vector-model
|
|
COPY installer/install_model.py install_model.py
|
|
RUN --mount=type=cache,target=/root/.cache \
|
|
pip3 install --upgrade pip setuptools && \
|
|
pip install pycrawlers && \
|
|
pip install transformers && \
|
|
python3 install_model.py
|
|
|
|
FROM node:18-bookworm-slim as web-build
|
|
COPY ui ui
|
|
RUN cd ui && \
|
|
npm install && \
|
|
npm run build && \
|
|
rm -rf ./node_modules
|
|
|
|
FROM stage-base as stage-build
|
|
WORKDIR /opt/maxkb/app
|
|
RUN python3 -m venv /opt/py3 && \
|
|
pip install poetry --break-system-packages && \
|
|
poetry config virtualenvs.create false && \
|
|
. /opt/py3/bin/activate && \
|
|
if [ "$(uname -m)" != "x86_64" ]; then sed -i '/^torch/d' pyproject.toml; fi && \
|
|
poetry install
|
|
|
|
FROM postgres:15.6-bookworm
|
|
ARG DOCKER_IMAGE_TAG=dev \
|
|
BUILD_AT \
|
|
GITHUB_COMMIT
|
|
|
|
ENV MAXKB_VERSION ${DOCKER_IMAGE_TAG} (build at ${BUILD_AT}, commit: ${GITHUB_COMMIT})
|
|
|
|
ARG DEPENDENCIES=" \
|
|
curl \
|
|
python3.11-mini \
|
|
python3.11-venv \
|
|
postgresql-15-pgvector"
|
|
|
|
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
|
echo "Asia/Shanghai" > /etc/timezone && \
|
|
apt-get update && apt-get install -y --no-install-recommends $DEPENDENCIES && \
|
|
apt-get clean all && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=stage-build /opt/py3 /opt/py3
|
|
COPY --from=stage-build /opt/maxkb /opt/maxkb
|
|
COPY --from=vector-model model /opt/maxkb/app/model
|
|
COPY --from=web-build ui /opt/maxkb/app/ui
|
|
|
|
ENV LANG=en_US.UTF-8 \
|
|
PATH=/opt/py3/bin:$PATH
|
|
|
|
ENV POSTGRES_USER root
|
|
ENV POSTGRES_PASSWORD Password123@postgres
|
|
|
|
RUN mv /opt/maxkb/app/model/* /opt/maxkb/model && \
|
|
chmod 755 /opt/maxkb/app/installer/run-maxkb.sh && \
|
|
cp -r /opt/maxkb/model/base/hub /opt/maxkb/model/tokenizer && \
|
|
cp -f /opt/maxkb/app/installer/init.sql /docker-entrypoint-initdb.d && \
|
|
cp -f /opt/maxkb/app/installer/run-maxkb.sh /usr/bin/run-maxkb.sh
|
|
|
|
EXPOSE 8080
|
|
|
|
ENTRYPOINT ["bash", "-c"]
|
|
CMD [ "/usr/bin/run-maxkb.sh" ] |