Skip to content

Commit d192560

Browse files
authored
Merge pull request #178 from jamals86/feature/vector-search
Embed OCI metadata, switch to debian13 base
2 parents 063c6b1 + 30d04a9 commit d192560

3 files changed

Lines changed: 51 additions & 2 deletions

File tree

.github/workflows/release.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,8 @@ jobs:
12081208
set -euo pipefail
12091209
VERSION="${{ needs.read_version.outputs.version }}"
12101210
DOCKER_REPO="${DOCKER_REPO_INPUT:-}"
1211+
DOCKER_IMAGE_SOURCE="https://github.com/${{ github.repository }}"
1212+
DOCKER_IMAGE_CREATED="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
12111213
if [[ -z "$DOCKER_REPO" ]]; then
12121214
DOCKER_REPO="jamals86/kalamdb"
12131215
fi
@@ -1220,6 +1222,8 @@ jobs:
12201222
DOCKER_VERSION_COMMIT_TAG="${VERSION}-h${SHORT_SHA}"
12211223
echo "docker_repo=$DOCKER_REPO" >> "$GITHUB_OUTPUT"
12221224
echo "docker_version_commit_tag=$DOCKER_VERSION_COMMIT_TAG" >> "$GITHUB_OUTPUT"
1225+
echo "docker_image_source=$DOCKER_IMAGE_SOURCE" >> "$GITHUB_OUTPUT"
1226+
echo "docker_image_created=$DOCKER_IMAGE_CREATED" >> "$GITHUB_OUTPUT"
12231227
12241228
- name: Download pre-built artifacts (x86_64)
12251229
uses: actions/download-artifact@v4
@@ -1302,6 +1306,16 @@ jobs:
13021306
platforms: linux/amd64
13031307
build-contexts: |
13041308
binaries=binaries-amd64
1309+
build-args: |
1310+
OCI_IMAGE_VERSION=${{ needs.read_version.outputs.version }}
1311+
OCI_IMAGE_REVISION=${{ github.sha }}
1312+
OCI_IMAGE_CREATED=${{ steps.vars.outputs.docker_image_created }}
1313+
OCI_IMAGE_SOURCE=${{ steps.vars.outputs.docker_image_source }}
1314+
OCI_IMAGE_URL=https://kalamdb.org
1315+
OCI_IMAGE_DOCUMENTATION=https://kalamdb.org/docs
1316+
OCI_IMAGE_AUTHORS=Jamal Saad
1317+
OCI_IMAGE_VENDOR=KalamDB
1318+
OCI_IMAGE_LICENSES=Apache-2.0
13051319
tags: |
13061320
${{ steps.vars.outputs.docker_repo }}:${{ needs.read_version.outputs.version }}-amd64
13071321
@@ -1328,6 +1342,16 @@ jobs:
13281342
platforms: linux/arm64
13291343
build-contexts: |
13301344
binaries=binaries-arm64
1345+
build-args: |
1346+
OCI_IMAGE_VERSION=${{ needs.read_version.outputs.version }}
1347+
OCI_IMAGE_REVISION=${{ github.sha }}
1348+
OCI_IMAGE_CREATED=${{ steps.vars.outputs.docker_image_created }}
1349+
OCI_IMAGE_SOURCE=${{ steps.vars.outputs.docker_image_source }}
1350+
OCI_IMAGE_URL=https://kalamdb.org
1351+
OCI_IMAGE_DOCUMENTATION=https://kalamdb.org/docs
1352+
OCI_IMAGE_AUTHORS=Jamal Saad
1353+
OCI_IMAGE_VENDOR=KalamDB
1354+
OCI_IMAGE_LICENSES=Apache-2.0
13311355
tags: |
13321356
${{ steps.vars.outputs.docker_repo }}:${{ needs.read_version.outputs.version }}-arm64
13331357

docker/build/Dockerfile.prebuilt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,32 @@ COPY backend/server.example.toml /runtime/config/server.toml
1717
RUN sed -i 's|data_path = "\./data"|data_path = "/data"|g' /runtime/config/server.toml
1818

1919
# Distroless runtime keeps the final image smaller and reduces the attack surface.
20-
FROM gcr.io/distroless/cc-debian12:nonroot
20+
# Debian 13 provides a newer glibc that matches the release-built Linux binaries.
21+
FROM gcr.io/distroless/cc-debian13:nonroot
22+
23+
ARG OCI_IMAGE_TITLE="KalamDB"
24+
ARG OCI_IMAGE_DESCRIPTION="SQL-first realtime state database for AI agents, chat products, and multi-tenant SaaS"
25+
ARG OCI_IMAGE_URL="https://kalamdb.org"
26+
ARG OCI_IMAGE_SOURCE="https://github.com/jamals86/KalamDB"
27+
ARG OCI_IMAGE_DOCUMENTATION="https://kalamdb.org/docs"
28+
ARG OCI_IMAGE_VENDOR="KalamDB"
29+
ARG OCI_IMAGE_AUTHORS="Jamal Saad"
30+
ARG OCI_IMAGE_LICENSES="Apache-2.0"
31+
ARG OCI_IMAGE_VERSION="dev"
32+
ARG OCI_IMAGE_REVISION="unknown"
33+
ARG OCI_IMAGE_CREATED="unknown"
34+
35+
LABEL org.opencontainers.image.title="${OCI_IMAGE_TITLE}" \
36+
org.opencontainers.image.description="${OCI_IMAGE_DESCRIPTION}" \
37+
org.opencontainers.image.url="${OCI_IMAGE_URL}" \
38+
org.opencontainers.image.source="${OCI_IMAGE_SOURCE}" \
39+
org.opencontainers.image.documentation="${OCI_IMAGE_DOCUMENTATION}" \
40+
org.opencontainers.image.vendor="${OCI_IMAGE_VENDOR}" \
41+
org.opencontainers.image.authors="${OCI_IMAGE_AUTHORS}" \
42+
org.opencontainers.image.licenses="${OCI_IMAGE_LICENSES}" \
43+
org.opencontainers.image.version="${OCI_IMAGE_VERSION}" \
44+
org.opencontainers.image.revision="${OCI_IMAGE_REVISION}" \
45+
org.opencontainers.image.created="${OCI_IMAGE_CREATED}"
2146

2247
# Copy pre-built binaries from build context (provided via --build-context binaries=...)
2348
# The build context should contain kalamdb-server and kalam binaries

docker/build/test-docker-image.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ main() {
105105

106106
# Test 3: Check binary existence
107107
log_info "Test 3: Checking binaries inside container..."
108-
docker exec "$CONTAINER_NAME" /bin/sh -c "test -x /usr/local/bin/kalamdb-server" &>/dev/null
108+
docker exec "$CONTAINER_NAME" /usr/local/bin/busybox sh -c "test -x /usr/local/bin/kalamdb-server" &>/dev/null
109109
if [ $? -eq 0 ]; then
110110
log_info "✓ Server binary exists and is executable"
111111
else

0 commit comments

Comments
 (0)