Docker config for @recaptime.dev's Knot server on Hack Club Nest. knot.hackclub.community
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: add version information metadata

Also adds knotserver-version to easily find build commit info in
case of issues while in the debug shell.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.dev>

+30 -6
+15 -6
Dockerfile
··· 4 4 ENV KNOT_REPO_SCAN_PATH=/home/git/repositories 5 5 ENV CGO_ENABLED=1 GOSUMDB=off GOPROXY=direct 6 6 7 - ARG TAG='v1.11.0-alpha' 7 + ARG KNOT_RELEASE_TAG='v1.11.0-alpha' KNOT_REPO_URL=https://tangled.org/@tangled.org/core 8 8 9 9 WORKDIR /app 10 10 RUN apk add git gcc musl-dev 11 - RUN git clone -b ${TAG} https://tangled.org/@tangled.org/core . \ 12 - && go build -o /usr/bin/knot -ldflags '-s -w -extldflags "-static"' ./cmd/knot 11 + RUN git clone -b ${KNOT_RELEASE_TAG} ${REPO_URL} . \ 12 + && go build -o /usr/bin/knot -ldflags '-s -w -extldflags "-static"' ./cmd/knot \ 13 + && git rev-parse HEAD > commit-sha.txt 13 14 14 - FROM ${DEPLOY_IMAGE} 15 + FROM ${DEPLOY_IMAGE} as deploy 15 16 EXPOSE 5555 16 17 EXPOSE 22 17 18 19 + ARG DOCKER_BUILD_COMMIT 20 + ARG DOCKER_BUILD_REPO 21 + 18 22 LABEL org.opencontainers.image.title='knot' \ 19 23 org.opencontainers.image.description='data server for tangled' \ 20 - org.opencontainers.image.source='https://tangled.org/@tangled.org/knot-docker' \ 24 + org.opencontainers.image.source=${DOCKER_BUILD_REPO}} \ 21 25 org.opencontainers.image.url='https://tangled.org' \ 22 26 org.opencontainers.image.vendor='tangled.org' \ 23 - org.opencontainers.image.licenses='MIT' 27 + org.opencontainers.image.licenses='MIT' \ 28 + org.opencontainers.image.revision=${DOCKER_BUILD_COMMIT} \ 29 + org.opencontainers.image.documentation='https://tangled.org/tangled.org/core/blob/master/docs/knot-hosting.md' 30 + 31 + ENV TANGLED_REPO_URL=${KNOT_REPO_URL} DOCKER_BUILD_COMMIT=${DOCKER_BUILD_COMMIT} DOCKER_BUILD_REPO=${DOCKER_BUILD_REPO} KNOT_REPO_SCAN_PATH=/home/git/repositories 24 32 25 33 ARG UID=1000 26 34 ARG GID=1000 ··· 38 46 && chown git:git /home/git/motd 39 47 40 48 COPY --from=builder /usr/bin/knot /usr/bin 49 + COPY --from=builder /app/commit-sha.txt /opt/knotserver-commit-sha 41 50 42 51 HEALTHCHECK --interval=60s --timeout=30s --start-period=5s --retries=3 \ 43 52 CMD curl -f http://localhost:5555 || exit 1
+15
rootfs/bin/knotserver-version
··· 1 + #!/usr/bin/env bash 2 + # SPDX-License-Identifier: MIT 3 + # Helper script for displaying version information about the knotserver Docker image 4 + # when invoked as part of bin/debug-shell. 5 + 6 + TANGLED_REPO_URL=${TANGLED_REPO_URL:-"https://tangled.org/tangled.org/core"} 7 + TANGLED_BUILD_COMMIT=$(cat /home/git/knotserver-commit-sha 2>/dev/null || echo "unknown") 8 + DOCKER_BUILD_COMMIT=$DOCKER_BUILD_COMMIT 9 + DOCKER_BUILD_REPO=${DOCKER_BUILD_REPO} 10 + 11 + echo "Tangled build commit SHA: $TANGLED_BUILD_COMMIT" 12 + echo "Tangled commit link: $TANGLED_REPO_URL/commit/$TANGLED_BUILD_COMMIT" 13 + echo "Docker build commit SHA: $DOCKER_BUILD_COMMIT" 14 + echo "Docker build commit link: $DOCKER_BUILD_REPO/commit/$DOCKER_BUILD_COMMIT" 15 + echo "Docker build repo: $DOCKER_BUILD_REPO"