#!/usr/bin/env bash . resource/runner/scripts/common.sh # Version VERSION="$(cat VERSION)" log_info "VERSION: $VERSION" # Image Prefix IMAGE_PREFIX=${IMAGE_PREFIX:-"git.0x7f.app/woj"} function docker_build() { tag_name="$IMAGE_PREFIX/$1" docker_file="$2" shift 2 $DOCKER build -t "$tag_name" -f "$docker_file" --build-arg "IMAGE_PREFIX=$IMAGE_PREFIX" "$@" . || { log_error "[!] Failed to build $tag_name"; exit 1; } } function build_base() { log_info "[+] Building Base Images" pushd resource/runner || exit 1 docker_build "ubuntu-full:latest" "scripts/ubuntu-full.Dockerfile" docker_build "ubuntu-run:latest" "scripts/ubuntu-run.Dockerfile" popd || exit 1 } function push_base() { log_info "[+] Pushing Base Images" $DOCKER push "$IMAGE_PREFIX/ubuntu-full:latest" $DOCKER push "$IMAGE_PREFIX/ubuntu-run:latest" } function build_server() { log_info "[+] Building Server" docker_build "woj-server:latest" "Server.Dockerfile" } function build_runner() { log_info "[+] Building Runner" if [[ "$DOCKER" == "docker" ]]; then # docker do not support --cap-add during build time docker_build "woj-runner:latest" "Runner.Dockerfile" --allow security.insecure else # podman docker_build "woj-runner:latest" "Runner.Dockerfile" --cap-add=sys_admin --security-opt label=disable fi } function push_server() { log_info "[+] Pushing Server Images" $DOCKER push "$IMAGE_PREFIX/woj-server:latest" $DOCKER tag "$IMAGE_PREFIX/woj-server:latest" "$IMAGE_PREFIX/woj-server:$VERSION" $DOCKER push "$IMAGE_PREFIX/woj-server:$VERSION" } function push_runner() { log_info "[+] Pushing Runner Images" $DOCKER push "$IMAGE_PREFIX/woj-runner:latest" $DOCKER tag "$IMAGE_PREFIX/woj-runner:latest" "$IMAGE_PREFIX/woj-runner:$VERSION" $DOCKER push "$IMAGE_PREFIX/woj-runner:$VERSION" } if [ "$1" == "base" ]; then build_base push_base exit 0 elif [ "$1" == "server" ]; then build_server push_server exit 0 elif [ "$1" == "runner" ]; then build_runner push_runner exit 0 elif [ "$1" == "all" ]; then build_base push_base build_server push_server build_runner push_runner exit 0 else log_error "Usage: $0 [base|server|runner|all]" exit 1 fi