#!/bin/sh set -eu mode="${1:-all}" build_rust() { image="$1" package="$2" bin="$3" docker build \ -f docker/Dockerfile.rust \ --build-arg PACKAGE="$package" \ --build-arg BIN="$bin" \ --build-arg GATEWAY_BUILD_VERSION="${GATEWAY_BUILD_VERSION:-dev}" \ --build-arg GATEWAY_BUILD_SHA="${GATEWAY_BUILD_SHA:-unknown}" \ -t "$image" \ . } build_ui() { image="$1" docker build -f docker/Dockerfile.ui -t "$image" . } build_platform() { build_rust cloudlysis/gateway:dev gateway gateway build_rust cloudlysis/aggregate:dev aggregate aggregate build_rust cloudlysis/projection:dev projection projection build_rust cloudlysis/runner:dev runner runner } build_control() { build_rust cloudlysis/control-api:dev api api build_ui cloudlysis/control-ui:dev } case "$mode" in platform) build_platform ;; control) build_control ;; all) build_platform build_control ;; *) echo "usage: sh docker/scripts/build_images.sh [platform|control|all]" 1>&2 exit 2 ;; esac