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