Something went wrong. Try again.
Docker config for @recaptime.dev's Tangled knotserver running on an Azure VM in Central India (via Azure for Students GitHub credits), previously ran for Hack Club community. knot.recaptime.dev
Something went wrong. Try again.
2.5 kB · 64 lines
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#!/usr/bin/env bash# SPDX-License-Identifier: MITif [[ $DEBUG != "" ]]; then set +xfi# First, collect metadata from git about the current commit_COMMIT_SHA_LOCAL=$(git rev-parse HEAD)_BRANCH_NAME_SLUG_LOCAL=$(git rev-parse --abbrev-ref HEAD | tr / -)TIMESTAMP=$(date -u +"%Y%m%d%H%M%S")# Then try to get the same info from GitLab CI environment variables, if availableCOMMIT_SHA=${CI_COMMIT_SHA:-$_COMMIT_SHA_LOCAL}BRANCH_NAME_SLUG=${CI_COMMIT_REF_SLUG:-$_BRANCH_NAME_SLUG_LOCAL}IMAGE_NAME=${IMAGE_NAME:-"$CI_REGISTRY/$CI_PROJECT_PATH"}KNOT_REPO_URL=${1:-"https://tangled.org/tangled.org/core"}KNOT_RELEASE_TAG=${2:-"master"} # build from dev branch if release tag left blankBUILD_TYPE=${BUILD_TYPE:-"production"}DOCKER_BUILD_REPO=${DOCKER_BUILD_REPO:-"https://tangled.org/recaptime.dev/knot-docker-nest"}DEPLOY_IMAGE=${DEPLOY_IMAGE:-"alpine:edge"}BUILDER_IMAGE=${BUILDER_IMAGE:-"golang:1.26-alpine"}echo "Attempting to build $IMAGE_NAME:build-$TIMESTAMP for $BUILD_TYPE"DOCKER_BUILDKIT=${DOCKER_BUILDKIT:-1} docker build \ -t "$IMAGE_NAME:build-$TIMESTAMP" \ --build-arg KNOT_RELEASE_TAG=$KNOT_RELEASE_TAG \ --build-arg KNOT_REPO_URL=$KNOT_REPO_URL \ --build-arg DOCKER_BUILD_REPO=$DOCKER_BUILD_REPO \ --build-arg DOCKER_BUILD_COMMIT=$COMMIT_SHA \ --build-arg UID=$UID \ --build-arg GID=$GID \ --build-arg DEPLOY_IMAGE=$DEPLOY_IMAGE \ --build-arg BUILDER_IMAGE=$BUILDER_IMAGE \ . BUILD_STATUS=$?if [[ "${BUILD_STATUS}" != "0" ]]; then echo "error: Something gone wrong while building the image, see logs above for context." exit 1fiif [[ $CI == "true" || "$FF_PUSH_LOCAL_BUILDS" == "true" ]]; then echo "Tagging $IMAGE_NAME:build-$TIMESTAMP for publishing" docker push "$IMAGE_NAME:build-$TIMESTAMP" # Do the branch and commit tagging first docker tag "$IMAGE_NAME:build-$TIMESTAMP" "$IMAGE_NAME:branch-$BRANCH_NAME_SLUG" && docker push "$IMAGE_NAME:branch-$BRANCH_NAME_SLUG" docker tag "$IMAGE_NAME:build-$TIMESTAMP" "$IMAGE_NAME:commit-$COMMIT_SHA" && docker push "$IMAGE_NAME:commit-$COMMIT_SHA" # Then the build type tags if [[ "$BUILD_TYPE" == "production" ]]; then docker tag "$IMAGE_NAME:build-$TIMESTAMP" "$IMAGE_NAME:latest" docker push "$IMAGE_NAME:latest" else docker tag "$IMAGE_NAME:build-$TIMESTAMP" "$IMAGE_NAME:$BUILD_TYPE" docker push "$IMAGE_NAME:$BUILD_TYPE" fielse echo "Skipping push of $IMAGE_NAME:build-$TIMESTAMP to registry"fiif [[ $DEBUG != "" ]]; then set -xfi