From a935021f131eaf0018f66caee0fb3f1fb37698bb Mon Sep 17 00:00:00 2001 From: liqiang-fit2cloud Date: Tue, 19 Mar 2024 19:53:47 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E5=88=86=E5=BC=80=E9=95=9C=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 && \