From 6228b77c23356418c0e91023380ae3a1b92e063b Mon Sep 17 00:00:00 2001 From: maninhill <41712985+maninhill@users.noreply.github.com> Date: Tue, 19 Mar 2024 18:47:57 +0800 Subject: [PATCH 1/7] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index e74d7f148..810faf196 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,6 @@ docker run -d --name=maxkb -p 8000:8000 ghcr.io/1panel-dev/maxkb TBD -## 微信交流群 - -TBD ## 技术栈 From b63116eee6e03fac22aa197d10c72abe3e8df72a Mon Sep 17 00:00:00 2001 From: liqiang-fit2cloud Date: Tue, 19 Mar 2024 18:52:42 +0800 Subject: [PATCH 2/7] =?UTF-8?q?build:=20=E5=88=86=E5=BC=80=E9=95=9C?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 1 + installer/Dockerfile | 30 +++++++++++------------------- 2 files changed, 12 insertions(+), 19 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..92c02acca --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.git* \ No newline at end of file diff --git a/installer/Dockerfile b/installer/Dockerfile index ac81d8aeb..3d8c1d3d0 100644 --- a/installer/Dockerfile +++ b/installer/Dockerfile @@ -13,28 +13,20 @@ RUN mkdir -p /opt/maxkb/app && mkdir -p /opt/maxkb/model && mkdir -p /opt/maxkb/ # 拷贝项目 COPY . /opt/maxkb/app COPY installer/config.yaml /opt/maxkb/conf -ENV POSTGRES_USER root -ENV POSTGRES_PASSWORD Password123@postgres -RUN rm -rf /opt/maxkb/app/ui /opt/maxkb/app/build COPY --from=vector-model model /opt/maxkb/app/model COPY --from=web-build ui /opt/maxkb/app/ui -RUN ls -la /opt/maxkb/app -# 复制模型 -RUN mv /opt/maxkb/app/model/* /opt/maxkb/model -RUN ls /opt/maxkb/model -RUN cp -r /opt/maxkb/model/base/hub /opt/maxkb/model/tokenizer -# 设置工作目录 +ENV POSTGRES_USER root +ENV POSTGRES_PASSWORD Password123@postgres WORKDIR /opt/maxkb/app -# 更新apt-get包管理器 -RUN apt-get update&&apt-get install -y curl -# 更新pip -RUN pip3 install --upgrade pip -# 安装 poetry包管理器 -RUN pip3 install poetry -# 导出依赖 -RUN poetry export -f requirements.txt --output requirements.txt --without-hashes -# 下载python依赖 -RUN pip3 install --no-cache-dir -r requirements.txt +RUN rm -rf /opt/maxkb/app/ui /opt/maxkb/app/build && \ + mv /opt/maxkb/app/model/* /opt/maxkb/model && \ + cp -r /opt/maxkb/model/base/hub /opt/maxkb/model/tokenizer && \ + apt-get install -y curl && \ + pip3 install --upgrade pip && \ + pip3 install poetry && \ + poetry export -f requirements.txt --output requirements.txt --without-hashes && \ + pip3 install --no-cache-dir -r requirements.txt && \ + rm -rf /var/lib/apt/lists/* # 启动命令 VOLUME /opt/maxkb/conf EXPOSE 8000 From 2578d753016b151f7edef59d8a19572d953576dd Mon Sep 17 00:00:00 2001 From: liqiang-fit2cloud Date: Tue, 19 Mar 2024 18:59:30 +0800 Subject: [PATCH 3/7] =?UTF-8?q?build:=20=E5=88=86=E5=BC=80=E9=95=9C?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- installer/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/installer/Dockerfile b/installer/Dockerfile index 3d8c1d3d0..0a3b0245c 100644 --- a/installer/Dockerfile +++ b/installer/Dockerfile @@ -14,12 +14,12 @@ RUN mkdir -p /opt/maxkb/app && mkdir -p /opt/maxkb/model && mkdir -p /opt/maxkb/ COPY . /opt/maxkb/app COPY installer/config.yaml /opt/maxkb/conf COPY --from=vector-model model /opt/maxkb/app/model +RUN rm -rf /opt/maxkb/app/ui /opt/maxkb/app/build COPY --from=web-build ui /opt/maxkb/app/ui ENV POSTGRES_USER root ENV POSTGRES_PASSWORD Password123@postgres WORKDIR /opt/maxkb/app -RUN rm -rf /opt/maxkb/app/ui /opt/maxkb/app/build && \ - mv /opt/maxkb/app/model/* /opt/maxkb/model && \ +RUN mv /opt/maxkb/app/model/* /opt/maxkb/model && \ cp -r /opt/maxkb/model/base/hub /opt/maxkb/model/tokenizer && \ apt-get install -y curl && \ pip3 install --upgrade pip && \ From 489ea64e2015e0b156eac3aacfa3212103db97b8 Mon Sep 17 00:00:00 2001 From: liqiang-fit2cloud Date: Tue, 19 Mar 2024 19:07:40 +0800 Subject: [PATCH 4/7] =?UTF-8?q?build:=20=E5=88=86=E5=BC=80=E9=95=9C?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- installer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/Dockerfile b/installer/Dockerfile index 0a3b0245c..5b42803b3 100644 --- a/installer/Dockerfile +++ b/installer/Dockerfile @@ -21,7 +21,7 @@ ENV POSTGRES_PASSWORD Password123@postgres WORKDIR /opt/maxkb/app RUN mv /opt/maxkb/app/model/* /opt/maxkb/model && \ cp -r /opt/maxkb/model/base/hub /opt/maxkb/model/tokenizer && \ - apt-get install -y curl && \ + apt-get update && apt-get install -y curl && \ pip3 install --upgrade pip && \ pip3 install poetry && \ poetry export -f requirements.txt --output requirements.txt --without-hashes && \ From b50689f529448d485804d538ad77f01c91f41e0e Mon Sep 17 00:00:00 2001 From: liqiang-fit2cloud Date: Tue, 19 Mar 2024 19:32:41 +0800 Subject: [PATCH 5/7] =?UTF-8?q?build:=20=E5=88=86=E5=BC=80=E9=95=9C?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 3 ++- installer/Dockerfile | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.dockerignore b/.dockerignore index 92c02acca..1463db15b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1 +1,2 @@ -.git* \ No newline at end of file +.git* +ui \ No newline at end of file diff --git a/installer/Dockerfile b/installer/Dockerfile index 5b42803b3..39b1f304e 100644 --- a/installer/Dockerfile +++ b/installer/Dockerfile @@ -4,28 +4,28 @@ FROM node:18-alpine3.18 as web-build COPY ui ui RUN cd ui && \ npm install && \ - npm run build && \ - rm -rf ./node_modules + npm run build FROM ghcr.io/1panel-dev/maxkb-python-pg:python3.11.8-pg15.3 # 创建工作目录 -RUN mkdir -p /opt/maxkb/app && mkdir -p /opt/maxkb/model && mkdir -p /opt/maxkb/conf +RUN mkdir -p /opt/maxkb/app && /opt/maxkb/app/ui && mkdir -p /opt/maxkb/model && mkdir -p /opt/maxkb/conf # 拷贝项目 COPY . /opt/maxkb/app COPY installer/config.yaml /opt/maxkb/conf COPY --from=vector-model model /opt/maxkb/app/model -RUN rm -rf /opt/maxkb/app/ui /opt/maxkb/app/build -COPY --from=web-build ui /opt/maxkb/app/ui +COPY --from=web-build ui/dist /opt/maxkb/app/ui ENV POSTGRES_USER root ENV POSTGRES_PASSWORD Password123@postgres WORKDIR /opt/maxkb/app -RUN mv /opt/maxkb/app/model/* /opt/maxkb/model && \ +RUN rm -rf /opt/maxkb/app/build && \ + mv /opt/maxkb/app/model/* /opt/maxkb/model && \ cp -r /opt/maxkb/model/base/hub /opt/maxkb/model/tokenizer && \ apt-get update && apt-get install -y curl && \ pip3 install --upgrade pip && \ pip3 install poetry && \ poetry export -f requirements.txt --output requirements.txt --without-hashes && \ pip3 install --no-cache-dir -r requirements.txt && \ + pip3 cache purge && \ rm -rf /var/lib/apt/lists/* # 启动命令 VOLUME /opt/maxkb/conf From 0e4256b61887f55d2d20965a3ef7e148e0511a92 Mon Sep 17 00:00:00 2001 From: baixin <52996290+baixin513@users.noreply.github.com> Date: Tue, 19 Mar 2024 19:34:24 +0800 Subject: [PATCH 6/7] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新 Readme 文档 增加 UI 展示图片 --- README.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 810faf196..78b6fcc0e 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,22 @@ docker run -d --name=maxkb -p 8000:8000 ghcr.io/1panel-dev/maxkb 也可以通过 [1Panel 应用商店](https://apps.fit2cloud.com/1panel) 快速部署 MaxKB + Ollama(Llama 2),30 分钟内即可上线基于本地大模型的知识库问答系统。 -## UI 展示 -TBD +## UI 展示 + + + + + + + + + +
Demo1Demo2
Demo3Demo4
+ +## 社区交流 + +[论坛](https://bbs.fit2cloud.com/c/mk/11) ## 技术栈 From a935021f131eaf0018f66caee0fb3f1fb37698bb Mon Sep 17 00:00:00 2001 From: liqiang-fit2cloud Date: Tue, 19 Mar 2024 19:53:47 +0800 Subject: [PATCH 7/7] =?UTF-8?q?build:=20=E5=88=86=E5=BC=80=E9=95=9C?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 3 +- .github/workflows/build-and-push.yml | 71 ++++++++++++++++++++++++++-- installer/Dockerfile | 6 +-- 3 files changed, 70 insertions(+), 10 deletions(-) diff --git a/.dockerignore b/.dockerignore index 1463db15b..92c02acca 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1 @@ -.git* -ui \ No newline at end of file +.git* \ No newline at end of file diff --git a/.github/workflows/build-and-push.yml b/.github/workflows/build-and-push.yml index 7614f99bd..39e8d8ddd 100644 --- a/.github/workflows/build-and-push.yml +++ b/.github/workflows/build-and-push.yml @@ -16,9 +16,19 @@ on: - linux/amd64 - linux/arm64 - linux/amd64,linux/arm64 + registry: + description: 'Push To Registry' + required: true + default: 'dockerhub, fit2cloud-registry' + type: choice + options: + - dockerhub + - fit2cloud-registry + - dockerhub, fit2cloud-registry jobs: - build-and-push: + build-and-push-to-fit2cloud-registry: + if: contains(${{ github.event.inputs.registry }}, 'fit2cloud') runs-on: ubuntu-latest steps: - name: Check Disk Space @@ -42,12 +52,14 @@ jobs: - name: Prepare id: prepare run: | - DOCKER_IMAGE_FIT2CLOUD=registry-hkproxy.fit2cloud.com/maxkb/maxkb - DOCKER_IMAGE_DOCKERHUB=1panel/maxkb + DOCKER_IMAGE=registry-hkproxy.fit2cloud.com/maxkb/maxkb DOCKER_PLATFORMS=${{ github.event.inputs.architecture }} TAG_NAME=${{ github.event.inputs.dockerImageTag }} - DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE_FIT2CLOUD}:${TAG_NAME} --tag ${DOCKER_IMAGE_FIT2CLOUD}:latest --tag ${DOCKER_IMAGE_DOCKERHUB}:${TAG_NAME} --tag ${DOCKER_IMAGE_DOCKERHUB}:latest" - echo ::set-output name=version::${TAG_NAME} + if [[ TAG_NAME == *dev* ]]; then + DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME}" + else + DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME} --tag ${DOCKER_IMAGE}:latest" + fi echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} --no-cache \ ${DOCKER_IMAGE_TAGS} . - name: Set up QEMU @@ -66,6 +78,55 @@ jobs: registry: registry-hkproxy.fit2cloud.com username: ${{ secrets.FIT2CLOUD_REGISTRY_USERNAME }} password: ${{ secrets.FIT2CLOUD_REGISTRY_PASSWORD }} + - name: Docker Buildx (build-and-push) + run: | + docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} -f installer/Dockerfile + + build-and-push-to-dockerhub: + if: contains(${{ github.event.inputs.registry }}, 'dockerhub') + runs-on: ubuntu-latest + steps: + - name: Check Disk Space + run: df -h + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + tool-cache: true + android: true + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true + - name: Check Disk Space + run: df -h + - name: Checkout + uses: actions/checkout@v4 + with: + ref: main + - name: Prepare + id: prepare + run: | + DOCKER_IMAGE=1panel/maxkb + DOCKER_PLATFORMS=${{ github.event.inputs.architecture }} + TAG_NAME=${{ github.event.inputs.dockerImageTag }} + if [[ TAG_NAME == *dev* ]]; then + DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME}" + else + DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME} --tag ${DOCKER_IMAGE}:latest" + fi + echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} --no-cache \ + ${DOCKER_IMAGE_TAGS} . + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GH_TOKEN }} - name: Login to Docker Hub uses: docker/login-action@v3 with: diff --git a/installer/Dockerfile b/installer/Dockerfile index 39b1f304e..50dff3c1a 100644 --- a/installer/Dockerfile +++ b/installer/Dockerfile @@ -8,17 +8,17 @@ RUN cd ui && \ FROM ghcr.io/1panel-dev/maxkb-python-pg:python3.11.8-pg15.3 # 创建工作目录 -RUN mkdir -p /opt/maxkb/app && /opt/maxkb/app/ui && mkdir -p /opt/maxkb/model && mkdir -p /opt/maxkb/conf +RUN mkdir -p /opt/maxkb/app && mkdir -p /opt/maxkb/model && mkdir -p /opt/maxkb/conf # 拷贝项目 COPY . /opt/maxkb/app +RUN rm -rf /opt/maxkb/app/ui/* COPY installer/config.yaml /opt/maxkb/conf COPY --from=vector-model model /opt/maxkb/app/model COPY --from=web-build ui/dist /opt/maxkb/app/ui ENV POSTGRES_USER root ENV POSTGRES_PASSWORD Password123@postgres WORKDIR /opt/maxkb/app -RUN rm -rf /opt/maxkb/app/build && \ - mv /opt/maxkb/app/model/* /opt/maxkb/model && \ +RUN mv /opt/maxkb/app/model/* /opt/maxkb/model && \ cp -r /opt/maxkb/model/base/hub /opt/maxkb/model/tokenizer && \ apt-get update && apt-get install -y curl && \ pip3 install --upgrade pip && \