Community maintained Docker config for the knot server

upgrade to v1.8.0, add publish workflow

+44 -3
+42
.tangled/workflows/publish.yml
··· 1 + when: 2 + - event: ["push"] 3 + branch: ["main"] 4 + - event: ["manual"] 5 + 6 + dependencies: 7 + nixpkgs: 8 + - docker 9 + - coreutils 10 + - gnused 11 + 12 + steps: 13 + - name: "Extract version from Dockerfile" 14 + command: | 15 + export TAG=$(grep -E '^arg TAG=' Dockerfile | sed -E "s/arg TAG='?([^']+)'?/\1/i") 16 + echo "Detected TAG=$TAG" 17 + echo "TAG=$TAG" >> $TANGLED_ENV_FILE # make TAG available to later steps 18 + 19 + - name: "Log in to Docker Hub" 20 + command: | 21 + echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin 22 + 23 + - name: "Build Docker image" 24 + command: | 25 + docker build --build-arg TAG="$TAG" -t "$DOCKER_USERNAME/$DOCKER_REPO:$TAG" . 26 + docker tag "$DOCKER_USERNAME/$DOCKER_REPO:$TAG" "$DOCKER_USERNAME/$DOCKER_REPO:latest" 27 + 28 + - name: "Push Docker image" 29 + command: | 30 + docker push "$DOCKER_USERNAME/$DOCKER_REPO:$TAG" 31 + docker push "$DOCKER_USERNAME/$DOCKER_REPO:latest" 32 + 33 + environment: 34 + GIT_COMMIT: "${CI_COMMIT_SHA}" 35 + DOCKER_USERNAME: "your-dockerhub-username" 36 + DOCKER_PASSWORD: "${DOCKER_PASSWORD}" 37 + DOCKER_REPO: "knot" 38 + 39 + clone: 40 + skip: false 41 + depth: 50 42 + submodules: true
+2 -3
Dockerfile
··· 2 2 env KNOT_REPO_SCAN_PATH=/home/git/repositories 3 3 env CGO_ENABLED=1 4 4 5 - arg TAG='v1.6.0-alpha' 5 + arg TAG='v1.8.0-alpha' 6 6 7 7 workdir /app 8 8 run apk add git gcc musl-dev ··· 30 30 run mkdir /app && chown -R git:git /app 31 31 32 32 healthcheck --interval=60s --timeout=30s --start-period=5s --retries=3 \ 33 - cmd curl -f http://localhost:5555 || exit 1 33 + cmd curl -f http://localhost:5555 || exit 1 34 34 35 35 entrypoint ["/init"] 36 -