Gunnar

mikronova/kyokkou

docker/build.sh

#!/usr/bin/env bash
set -euo pipefail

cd "$(dirname "$0")/.."

TARGET=${1:-all}

build_base()          { podman build -f docker/Dockerfile.base -t kyokkou-base .; }
build_base_noble()    { podman build --build-arg UBUNTU_VERSION=24.04 -f docker/Dockerfile.base -t kyokkou-base-noble .; }
build_cpu()           { podman build -f docker/Dockerfile.cpu     -t kyokkou-cpu          .; }
build_rocm()          { podman build -f docker/Dockerfile.rocm    -t kyokkou-rocm         .; }
build_cuda()          { podman build -f docker/Dockerfile.cuda    -t kyokkou-cuda         .; }
build_bundled_cpu()   { podman build --build-arg BASE=kyokkou-cpu  -f docker/Dockerfile.bundled -t kyokkou-bundled-cpu  .; }
build_bundled_rocm()  { podman build --build-arg BASE=kyokkou-rocm -f docker/Dockerfile.bundled -t kyokkou-bundled-rocm .; }
build_bundled_cuda()  { podman build --build-arg BASE=kyokkou-cuda -f docker/Dockerfile.bundled -t kyokkou-bundled-cuda .; }

case "$TARGET" in
  base)          build_base ;;
  cpu)           build_base && build_cpu ;;
  rocm)          build_base_noble && build_rocm ;;
  cuda)          build_cuda ;;
  bundled-cpu)   build_base && build_cpu  && build_bundled_cpu ;;
  bundled-rocm)  build_base_noble && build_rocm && build_bundled_rocm ;;
  bundled-cuda)  build_cuda && build_bundled_cuda ;;
  bundled)       build_base && build_base_noble && build_cpu && build_rocm && build_cuda \
                   && build_bundled_cpu && build_bundled_rocm && build_bundled_cuda ;;
  all)           build_base && build_base_noble && build_cpu && build_rocm && build_cuda \
                   && build_bundled_cpu && build_bundled_rocm && build_bundled_cuda ;;
  *)             echo "usage: $0 [base|cpu|rocm|cuda|bundled-cpu|bundled-rocm|bundled-cuda|bundled|all]"; exit 1 ;;
esac