From 1f30917fd3305cd87a358d39bfc1a4496ecbb80e Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:28:36 +0800 Subject: [PATCH 01/28] Create build-dev.yml --- .github/workflows/build-dev.yml | 49 +++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/build-dev.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml new file mode 100644 index 00000000..9b5a1f65 --- /dev/null +++ b/.github/workflows/build-dev.yml @@ -0,0 +1,49 @@ +name: Build Vectordb + +on: + push: + branches: [ "dev" ] + paths: ['engine/Dockerfile'] + +jobs: + build: + + name: Build Vectordb + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get Current Date + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d%H%M%S')" + + - name: Build + env: + DOCKER_HUB_REPOSITORY: epsilla/vectordb + SHA_TAG: ${{ github.sha }} + run: | + echo "SHA: ${SHA_TAG}" + + wget https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64 + chmod +x buildx-v0.11.2.linux-amd64 + mkdir -p $HOME/.docker/cli-plugins + mv buildx-v0.11.2.linux-amd64 $HOME/.docker/cli-plugins/docker-buildx + + + cd ./engine + docker buildx build --push --platform linux/amd64,linux/arm64 -t epsilla/vectordb:dev . + + + + + + + From 73bbe555baa0d876954270d7c1a19b5b891f4159 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:29:01 +0800 Subject: [PATCH 02/28] Update Dockerfile --- engine/Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index f311a2c4..5bab731a 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -12,11 +12,7 @@ RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(npro FROM ubuntu:22.04 RUN apt-get update && \ - apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates && \ - wget --no-check-certificate https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-amd64 && \ - chmod +x geesefs-linux-amd64 && \ - mv geesefs-linux-amd64 /usr/local/bin/geesefs && \ - geesefs --version + apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates COPY --from=builder /vectordb/build/vectordb /vectordb COPY ./scripts/heartbeat.sh /heartbeat.sh HEALTHCHECK --interval=600s --timeout=30s --retries=1000 CMD bash /heartbeat.sh || exit 0 From 81a15f386d7c8e08417d29b85281ddf0ecedab4b Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:30:18 +0800 Subject: [PATCH 03/28] Update build-dev.yml --- .github/workflows/build-dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 9b5a1f65..6e9fc197 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -36,6 +36,7 @@ jobs: chmod +x buildx-v0.11.2.linux-amd64 mkdir -p $HOME/.docker/cli-plugins mv buildx-v0.11.2.linux-amd64 $HOME/.docker/cli-plugins/docker-buildx + docker buildx create --use cd ./engine From 1ddc8e7e1931e3eec41da49451e1b08afd6dbd60 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:30:44 +0800 Subject: [PATCH 04/28] Update Dockerfile --- engine/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/engine/Dockerfile b/engine/Dockerfile index 5bab731a..721648ad 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -10,9 +10,11 @@ RUN scripts/install_oatpp_modules.sh RUN scripts/setup-dev.sh RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(nproc) && chmod +x vectordb + FROM ubuntu:22.04 RUN apt-get update && \ apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates + COPY --from=builder /vectordb/build/vectordb /vectordb COPY ./scripts/heartbeat.sh /heartbeat.sh HEALTHCHECK --interval=600s --timeout=30s --retries=1000 CMD bash /heartbeat.sh || exit 0 From 553f9f5a0711f864a5b52158ba01a86ab8773fdb Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 22:55:19 +0800 Subject: [PATCH 05/28] Update Dockerfile add ${TARGETARCH} https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope The following ARG variables are set automatically: TARGETPLATFORM - platform of the build result. Eg linux/amd64, linux/arm/v7, windows/amd64. TARGETOS - OS component of TARGETPLATFORM TARGETARCH - architecture component of TARGETPLATFORM TARGETVARIANT - variant component of TARGETPLATFORM BUILDPLATFORM - platform of the node performing the build. BUILDOS - OS component of BUILDPLATFORM BUILDARCH - architecture component of BUILDPLATFORM BUILDVARIANT - variant component of BUILDPLATFORM --- engine/Dockerfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index 721648ad..cd9a72ed 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -12,9 +12,13 @@ RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(npro FROM ubuntu:22.04 +ARG TARGETARCH RUN apt-get update && \ - apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates - + apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates && \ + wget --no-check-certificate https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-${TARGETARCH} && \ + chmod +x geesefs-linux-${TARGETARCH} && \ + mv geesefs-linux-${TARGETARCH} /usr/local/bin/geesefs && \ + geesefs --version COPY --from=builder /vectordb/build/vectordb /vectordb COPY ./scripts/heartbeat.sh /heartbeat.sh HEALTHCHECK --interval=600s --timeout=30s --retries=1000 CMD bash /heartbeat.sh || exit 0 From 8490a4046d81c74670af3cc73b6b3e3677f35591 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 23:09:50 +0800 Subject: [PATCH 06/28] Update Dockerfile --- engine/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index cd9a72ed..f68df702 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -7,7 +7,6 @@ ADD ./ /vectordb WORKDIR /vectordb ENV OATPP_INSTALL_PATH=/vectordb/build/dependencies RUN scripts/install_oatpp_modules.sh -RUN scripts/setup-dev.sh RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(nproc) && chmod +x vectordb From 97d6e26d3ef2230051db65bb30f282385a72601d Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 23:51:52 +0800 Subject: [PATCH 07/28] Update build.yml --- .github/workflows/build.yml | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 66ff07de..d17d075f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,10 +33,31 @@ jobs: echo "IMAGE_TAG: ${IMAGE_TAG}" echo "SHA: ${SHA_TAG}" cd ./engine - docker build --pull -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} . - docker push ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} + echo "\n\nBuild docker image for amd64 firstly\n\n" + + docker build --pull -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG}-amd64 . + docker push ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG}-amd64 + + + + echo "\n\nBuild allinone docker image both for amd64 and arm64\n\n" + + wget https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64 + chmod +x buildx-v0.11.2.linux-amd64 + mkdir -p $HOME/.docker/cli-plugins + mv buildx-v0.11.2.linux-amd64 $HOME/.docker/cli-plugins/docker-buildx + docker buildx create --use + docker buildx ls + docker buildx build --push --platform linux/amd64,linux/arm64 -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} . + + docker pull ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} docker tag ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} ${DOCKER_HUB_REPOSITORY}:latest docker push ${DOCKER_HUB_REPOSITORY}:latest + + + + + From 3929c25c181d41f0811301306ee4891f043ef993 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Wed, 18 Oct 2023 23:56:15 +0800 Subject: [PATCH 08/28] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d17d075f..3fe75db0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build Vectordb +name: Build Vectordb Docker Image for linux/amd64 and linux/arm64 on: push: From 068e8d712e14481e4215af31b8dcccdaaf154e1f Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 00:19:05 +0800 Subject: [PATCH 09/28] Update Dockerfile --- engine/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index f68df702..f6549630 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -13,7 +13,11 @@ RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(npro FROM ubuntu:22.04 ARG TARGETARCH RUN apt-get update && \ - apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates && \ + apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates gcc flex && \ + echo "====== Fix CVE-2023-41915 with PMIx v4.1.3 ====== && \ + wget --no-check-certificate https://github.com/openpmix/openpmix/releases/download/v4.1.3/pmix-4.1.3.tar.gz && \ + tar -zxvf pmix-4.1.3.tar.gz && cd pmix-4.1.3 && ./configure --disable-dependency-tracking && make && make install && cd .. && rm -rf pmix-4.1.3* && \ + echo "====== Install geesefs ======" && \ wget --no-check-certificate https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-${TARGETARCH} && \ chmod +x geesefs-linux-${TARGETARCH} && \ mv geesefs-linux-${TARGETARCH} /usr/local/bin/geesefs && \ From 58fc62936a3029fb2d62cab68c6c2afc709150ef Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 00:20:27 +0800 Subject: [PATCH 10/28] Update Dockerfile --- engine/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index f6549630..e44705f8 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -14,7 +14,7 @@ FROM ubuntu:22.04 ARG TARGETARCH RUN apt-get update && \ apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates gcc flex && \ - echo "====== Fix CVE-2023-41915 with PMIx v4.1.3 ====== && \ + echo "====== Fix CVE-2023-41915 with PMIx v4.1.3 ======" && \ wget --no-check-certificate https://github.com/openpmix/openpmix/releases/download/v4.1.3/pmix-4.1.3.tar.gz && \ tar -zxvf pmix-4.1.3.tar.gz && cd pmix-4.1.3 && ./configure --disable-dependency-tracking && make && make install && cd .. && rm -rf pmix-4.1.3* && \ echo "====== Install geesefs ======" && \ From 96d969197a41fc3db7d6b606201e19def48f2f31 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 00:24:02 +0800 Subject: [PATCH 11/28] Update Dockerfile --- engine/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index e44705f8..4dcd8b3c 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -12,6 +12,7 @@ RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(npro FROM ubuntu:22.04 ARG TARGETARCH + RUN apt-get update && \ apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates gcc flex && \ echo "====== Fix CVE-2023-41915 with PMIx v4.1.3 ======" && \ @@ -21,7 +22,9 @@ RUN apt-get update && \ wget --no-check-certificate https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-${TARGETARCH} && \ chmod +x geesefs-linux-${TARGETARCH} && \ mv geesefs-linux-${TARGETARCH} /usr/local/bin/geesefs && \ - geesefs --version + geesefs --version && \ + apt-get clean all && rm -rf /var/apt/lists/* /var/cache/apt/* + COPY --from=builder /vectordb/build/vectordb /vectordb COPY ./scripts/heartbeat.sh /heartbeat.sh HEALTHCHECK --interval=600s --timeout=30s --retries=1000 CMD bash /heartbeat.sh || exit 0 From 90acff0c8c799e879bbc2268ed1174c962c8f5ac Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 00:27:43 +0800 Subject: [PATCH 12/28] Update Dockerfile --- engine/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index 4dcd8b3c..babbb143 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -14,7 +14,7 @@ FROM ubuntu:22.04 ARG TARGETARCH RUN apt-get update && \ - apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates gcc flex && \ + apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates gcc flex cmake build-essential && \ echo "====== Fix CVE-2023-41915 with PMIx v4.1.3 ======" && \ wget --no-check-certificate https://github.com/openpmix/openpmix/releases/download/v4.1.3/pmix-4.1.3.tar.gz && \ tar -zxvf pmix-4.1.3.tar.gz && cd pmix-4.1.3 && ./configure --disable-dependency-tracking && make && make install && cd .. && rm -rf pmix-4.1.3* && \ From ac2f278383910ddc9a5debf2c14d95bb4c069094 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:13:47 +0800 Subject: [PATCH 13/28] Update build-dev.yml --- .github/workflows/build-dev.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 6e9fc197..a896002e 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -30,6 +30,9 @@ jobs: DOCKER_HUB_REPOSITORY: epsilla/vectordb SHA_TAG: ${{ github.sha }} run: | + export IMAGE_TAG=${{ steps.date.outputs.date }} + export IMAGE_TAG_LATEST="latest" + echo "IMAGE_TAG: ${IMAGE_TAG}" echo "SHA: ${SHA_TAG}" wget https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64 @@ -40,7 +43,8 @@ jobs: cd ./engine - docker buildx build --push --platform linux/amd64,linux/arm64 -t epsilla/vectordb:dev . + docker buildx build --push --platform linux/amd64,linux/arm64 -t epsilla/vectordb:dev --label "org.opencontainers.image.version"=$IMAGE_TAG + . From d8d055f510a64aaf7ea36cd5d364ea67ac29c6f5 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:19:02 +0800 Subject: [PATCH 14/28] Update build-dev.yml --- .github/workflows/build-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index a896002e..867cd72b 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -43,8 +43,8 @@ jobs: cd ./engine - docker buildx build --push --platform linux/amd64,linux/arm64 -t epsilla/vectordb:dev --label "org.opencontainers.image.version"=$IMAGE_TAG - . + docker buildx build --build-arg="RELEASE_VERSION=${IMAGE_TAG}" --push --platform linux/amd64,linux/arm64 -t epsilla/vectordb:dev --label "org.opencontainers.image.version"=$IMAGE_TAG . + From d2ad59c4b83b78c6725e4b40272255b6c496a9e6 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:19:45 +0800 Subject: [PATCH 15/28] Update build.yml --- .github/workflows/build.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3fe75db0..f301527a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,14 +30,15 @@ jobs: SHA_TAG: ${{ github.sha }} run: | export IMAGE_TAG=${{ steps.date.outputs.date }} + export IMAGE_TAG_LATEST="latest" echo "IMAGE_TAG: ${IMAGE_TAG}" echo "SHA: ${SHA_TAG}" + cd ./engine echo "\n\nBuild docker image for amd64 firstly\n\n" - docker build --pull -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG}-amd64 . - docker push ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG}-amd64 - + docker build --pull -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST}-amd64 . + docker push ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST}-amd64 echo "\n\nBuild allinone docker image both for amd64 and arm64\n\n" @@ -48,11 +49,9 @@ jobs: mv buildx-v0.11.2.linux-amd64 $HOME/.docker/cli-plugins/docker-buildx docker buildx create --use docker buildx ls - docker buildx build --push --platform linux/amd64,linux/arm64 -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} . + docker buildx build --build-arg="RELEASE_VERSION=${IMAGE_TAG}" --push --platform linux/amd64,linux/arm64 -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST} --label "org.opencontainers.image.version"=$IMAGE_TAG . - docker pull ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} - docker tag ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} ${DOCKER_HUB_REPOSITORY}:latest - docker push ${DOCKER_HUB_REPOSITORY}:latest + From b8c76ba6a48fe5bcc194fd2c1dfea7a075ba9b59 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:22:44 +0800 Subject: [PATCH 16/28] Update heartbeat.sh --- engine/scripts/heartbeat.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/scripts/heartbeat.sh b/engine/scripts/heartbeat.sh index 71d18a33..49a1039f 100755 --- a/engine/scripts/heartbeat.sh +++ b/engine/scripts/heartbeat.sh @@ -6,6 +6,9 @@ STARTUP_FILE=".startup_file" CONFIG_URL="https://config.epsilla.com/candidate.json" QUERY_URL="https://api.ipify.org" +DB_RELEASE_VERSION=${RELEASE_VERSION:-latest} + + SENTRY_DSN=`curl -s $CONFIG_URL | grep heartbeat | awk -F '"' '{print $(NF-1)}'` SENTRY_HOST=`echo $SENTRY_DSN | sed -e "s/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/"` SENTRY_SECRET=`echo $SENTRY_DSN | cut -d '/' -f3 | cut -d '@' -f1` @@ -38,7 +41,7 @@ if [ ! -f "${STARTUP_FILE}" ]; then \"logger\": \"docker\", \"server_name\": \"${HOSTNAME}\", \"tags\": { - \"version\": \"latest\", + \"version\": \"${DB_RELEASE_VERSION}\", \"internal_ip\": \"${INTERNAL_IP}\", \"external_ip\": \"${EXTERNAL_IP}\", \"timestamp\": \"${TIMESTAMP}\", From 85734296b2ddcb6f9ca597538b2f0ad7e87a761b Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:22:50 +0800 Subject: [PATCH 17/28] Update Dockerfile --- engine/Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index babbb143..ef543d56 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -12,12 +12,11 @@ RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(npro FROM ubuntu:22.04 ARG TARGETARCH +ARG RELEASE_VERSION=latest +ENV DB_RELEASE_VERSION=$RELEASE_VERSION RUN apt-get update && \ - apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates gcc flex cmake build-essential && \ - echo "====== Fix CVE-2023-41915 with PMIx v4.1.3 ======" && \ - wget --no-check-certificate https://github.com/openpmix/openpmix/releases/download/v4.1.3/pmix-4.1.3.tar.gz && \ - tar -zxvf pmix-4.1.3.tar.gz && cd pmix-4.1.3 && ./configure --disable-dependency-tracking && make && make install && cd .. && rm -rf pmix-4.1.3* && \ + apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates && \ echo "====== Install geesefs ======" && \ wget --no-check-certificate https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-${TARGETARCH} && \ chmod +x geesefs-linux-${TARGETARCH} && \ From d48e1acb5a6efbd09265424df1d2d13afd181e78 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:23:30 +0800 Subject: [PATCH 18/28] Update heartbeat.sh --- engine/scripts/heartbeat.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/scripts/heartbeat.sh b/engine/scripts/heartbeat.sh index 49a1039f..16876d0e 100755 --- a/engine/scripts/heartbeat.sh +++ b/engine/scripts/heartbeat.sh @@ -6,7 +6,7 @@ STARTUP_FILE=".startup_file" CONFIG_URL="https://config.epsilla.com/candidate.json" QUERY_URL="https://api.ipify.org" -DB_RELEASE_VERSION=${RELEASE_VERSION:-latest} +RELEASE_VERSION=${DB_RELEASE_VERSION:-latest} SENTRY_DSN=`curl -s $CONFIG_URL | grep heartbeat | awk -F '"' '{print $(NF-1)}'` @@ -41,7 +41,7 @@ if [ ! -f "${STARTUP_FILE}" ]; then \"logger\": \"docker\", \"server_name\": \"${HOSTNAME}\", \"tags\": { - \"version\": \"${DB_RELEASE_VERSION}\", + \"version\": \"${RELEASE_VERSION}\", \"internal_ip\": \"${INTERNAL_IP}\", \"external_ip\": \"${EXTERNAL_IP}\", \"timestamp\": \"${TIMESTAMP}\", From 3776524598b09fcb905cd4589acb1d322ba24819 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:24:18 +0800 Subject: [PATCH 19/28] Update heartbeat.sh --- engine/scripts/heartbeat.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/scripts/heartbeat.sh b/engine/scripts/heartbeat.sh index 16876d0e..47e0e71a 100755 --- a/engine/scripts/heartbeat.sh +++ b/engine/scripts/heartbeat.sh @@ -6,7 +6,7 @@ STARTUP_FILE=".startup_file" CONFIG_URL="https://config.epsilla.com/candidate.json" QUERY_URL="https://api.ipify.org" -RELEASE_VERSION=${DB_RELEASE_VERSION:-latest} +RELEASE_VERSION=${ENV_RELEASE_VERSION:-latest} SENTRY_DSN=`curl -s $CONFIG_URL | grep heartbeat | awk -F '"' '{print $(NF-1)}'` From b64b67637315dc86fd694bc246b90a910016eaba Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:24:47 +0800 Subject: [PATCH 20/28] Update Dockerfile --- engine/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index ef543d56..fe829e60 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -13,7 +13,7 @@ RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(npro FROM ubuntu:22.04 ARG TARGETARCH ARG RELEASE_VERSION=latest -ENV DB_RELEASE_VERSION=$RELEASE_VERSION +ENV ENV_RELEASE_VERSION=$RELEASE_VERSION RUN apt-get update && \ apt-get install -y --no-install-recommends curl wget net-tools iproute2 supervisor libgomp1 libboost-all-dev s3fs fuse ca-certificates && \ From 12e2dd82ab2fec9e11e77fcd08e47cccfa206553 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:04:35 +0800 Subject: [PATCH 21/28] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f301527a..4cb69c59 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,8 +37,8 @@ jobs: cd ./engine echo "\n\nBuild docker image for amd64 firstly\n\n" - docker build --pull -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST}-amd64 . - docker push ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST}-amd64 + docker build --pull -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG}-amd64 . + docker push ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG}-amd64 echo "\n\nBuild allinone docker image both for amd64 and arm64\n\n" From cb512887e1eca3acae4218be81ec4f823b054784 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:13:18 +0800 Subject: [PATCH 22/28] Update build-dev.yml --- .github/workflows/build-dev.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 867cd72b..60c009f3 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -43,7 +43,17 @@ jobs: cd ./engine - docker buildx build --build-arg="RELEASE_VERSION=${IMAGE_TAG}" --push --platform linux/amd64,linux/arm64 -t epsilla/vectordb:dev --label "org.opencontainers.image.version"=$IMAGE_TAG . + docker buildx build --build-arg="RELEASE_VERSION=${IMAGE_TAG}" \ + --platform linux/amd64,linux/arm64 \ + --label "org.opencontainers.image.description"="Official Epsilla Vector Database Image" \ + --label "org.opencontainers.image.documentation"="https://epsilla-inc.gitbook.io/epsilladb" \ + --label "org.opencontainers.image.source"="https://github.com/epsilla-cloud/vectordb" \ + --label "org.opencontainers.image.title"="Epsilla Vector Database" \ + --label "org.opencontainers.image.url"="https://www.epsilla.com" \ + --label "org.opencontainers.image.vendor"="Epsilla" \ + --label "org.opencontainers.image.version"=$IMAGE_TAG \ + --push \ + -t epsilla/vectordb:dev . From f6d021cecc47106225c846a8280e89a204b57637 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:14:57 +0800 Subject: [PATCH 23/28] Update build.yml --- .github/workflows/build.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4cb69c59..00e3bf98 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,10 +49,20 @@ jobs: mv buildx-v0.11.2.linux-amd64 $HOME/.docker/cli-plugins/docker-buildx docker buildx create --use docker buildx ls - docker buildx build --build-arg="RELEASE_VERSION=${IMAGE_TAG}" --push --platform linux/amd64,linux/arm64 -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST} --label "org.opencontainers.image.version"=$IMAGE_TAG . - - + docker buildx build --build-arg="RELEASE_VERSION=${IMAGE_TAG}" \ + --platform linux/amd64,linux/arm64 \ + --label "org.opencontainers.image.description"="Official Epsilla Vector Database Image" \ + --label "org.opencontainers.image.documentation"="https://epsilla-inc.gitbook.io/epsilladb" \ + --label "org.opencontainers.image.source"="https://github.com/epsilla-cloud/vectordb" \ + --label "org.opencontainers.image.title"="Epsilla Vector Database" \ + --label "org.opencontainers.image.url"="https://www.epsilla.com" \ + --label "org.opencontainers.image.vendor"="Epsilla" \ + --label "org.opencontainers.image.version"=$IMAGE_TAG \ + --push \ + -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} \ + -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST} . + From 18ecdd9889d47f53b332faf14ec5571f1095a7f0 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:17:36 +0800 Subject: [PATCH 24/28] Update heartbeat.sh --- engine/scripts/heartbeat.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/engine/scripts/heartbeat.sh b/engine/scripts/heartbeat.sh index 47e0e71a..389b0851 100755 --- a/engine/scripts/heartbeat.sh +++ b/engine/scripts/heartbeat.sh @@ -58,7 +58,7 @@ if [ ! -f "${STARTUP_FILE}" ]; then \"api_key\": \"${POSTHOG_API_KEY}\", \"distinct_id\": \"${DISTINCT_ID}\", \"properties\": { - \"version\": \"latest\", + \"version\": \"${RELEASE_VERSION}\", \"internal_ip\": \"${INTERNAL_IP}\", \"external_ip\": \"${EXTERNAL_IP}\" } @@ -79,6 +79,7 @@ curl -X POST \ \"level\": \"info\", \"server_name\": \"${HOSTNAME}\", \"tags\": { + \"version\": \"${RELEASE_VERSION}\", \"internal_ip\": \"${INTERNAL_IP}\", \"external_ip\": \"${EXTERNAL_IP}\", \"heart_beat\": \"${DATE_TAG}\", @@ -99,7 +100,7 @@ curl -X POST -L --header "Content-Type: application/json" \ \"api_key\": \"${POSTHOG_API_KEY}\", \"distinct_id\": \"${DISTINCT_ID}\", \"properties\": { - \"version\": \"latest\", + \"version\": \"${RELEASE_VERSION}\", \"internal_ip\": \"${INTERNAL_IP}\", \"external_ip\": \"${EXTERNAL_IP}\" } From 6bda6517ae0f17425c9637ce169983a416354dde Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:18:40 +0800 Subject: [PATCH 25/28] Update Dockerfile --- engine/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/engine/Dockerfile b/engine/Dockerfile index fe829e60..9957479f 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -10,6 +10,7 @@ RUN scripts/install_oatpp_modules.sh RUN mkdir -p /vectordb/build && cd /vectordb/build && cmake .. && make -j $(nproc) && chmod +x vectordb + FROM ubuntu:22.04 ARG TARGETARCH ARG RELEASE_VERSION=latest @@ -22,10 +23,11 @@ RUN apt-get update && \ chmod +x geesefs-linux-${TARGETARCH} && \ mv geesefs-linux-${TARGETARCH} /usr/local/bin/geesefs && \ geesefs --version && \ - apt-get clean all && rm -rf /var/apt/lists/* /var/cache/apt/* - + apt-get clean all && \ + rm -rf /var/apt/lists/* /var/cache/apt/* COPY --from=builder /vectordb/build/vectordb /vectordb COPY ./scripts/heartbeat.sh /heartbeat.sh HEALTHCHECK --interval=600s --timeout=30s --retries=1000 CMD bash /heartbeat.sh || exit 0 ENTRYPOINT ["/vectordb"] + From a0895cdebf35786065b82c3a0da7b399d585bf65 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:25:04 +0800 Subject: [PATCH 26/28] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 00e3bf98..d8ca36d7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,7 +58,7 @@ jobs: --label "org.opencontainers.image.title"="Epsilla Vector Database" \ --label "org.opencontainers.image.url"="https://www.epsilla.com" \ --label "org.opencontainers.image.vendor"="Epsilla" \ - --label "org.opencontainers.image.version"=$IMAGE_TAG \ + --label "org.opencontainers.image.version"=${IMAGE_TAG} \ --push \ -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG} \ -t ${DOCKER_HUB_REPOSITORY}:${IMAGE_TAG_LATEST} . From ace7ae7d64709b6dc8bc885ab6be9cbf68f1818c Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:25:18 +0800 Subject: [PATCH 27/28] Update build-dev.yml --- .github/workflows/build-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 60c009f3..c1d3b543 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -51,7 +51,7 @@ jobs: --label "org.opencontainers.image.title"="Epsilla Vector Database" \ --label "org.opencontainers.image.url"="https://www.epsilla.com" \ --label "org.opencontainers.image.vendor"="Epsilla" \ - --label "org.opencontainers.image.version"=$IMAGE_TAG \ + --label "org.opencontainers.image.version"=${IMAGE_TAG} \ --push \ -t epsilla/vectordb:dev . From e1ca4fe2578f7511ee1c1518b0dfa4125ddf9894 Mon Sep 17 00:00:00 2001 From: Eric <132873174+eric-epsilla@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:27:51 +0800 Subject: [PATCH 28/28] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d8ca36d7..25fc0307 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: jobs: build: - name: Build Vectordb + name: Build All-in-One Vectordb Docker Image runs-on: ubuntu-latest steps: