- Update collab/TSYSDevStack-toolbox-prompt.md with latest guidelines - Update output/PROMPT with improved instructions for AI collaboration - Update output/toolbox-base/PROMPT with enhanced development guidelines - Update output/toolbox-base/README.md with current documentation - Update output/toolbox-base/build.sh with improved build process - Update output/toolbox-base/docker-compose.yml with refined service definitions - Update output/toolbox-base/run.sh with enhanced runtime configuration - Add output/toolbox-base/release.sh for release management processes These changes improve the developer workspace experience and ensure consistent tooling across the TSYSDevStack project.
59 lines
1.9 KiB
Bash
Executable File
59 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
IMAGE_NAME="tsysdevstack-toolboxstack-toolbox-base"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
USER_ID="${USER_ID_OVERRIDE:-$(id -u)}"
|
|
GROUP_ID="${GROUP_ID_OVERRIDE:-$(id -g)}"
|
|
USERNAME="${USERNAME_OVERRIDE:-toolbox}"
|
|
TEA_VERSION="${TEA_VERSION_OVERRIDE:-0.11.1}"
|
|
BUILDER_NAME="${BUILDER_NAME:-tsysdevstack-toolboxstack-builder}"
|
|
CACHE_DIR="${SCRIPT_DIR}/.build-cache"
|
|
TAG="${TAG_OVERRIDE:-dev}"
|
|
RELEASE_TAG="${RELEASE_TAG_OVERRIDE:-release-current}"
|
|
VERSION_TAG="${VERSION_TAG_OVERRIDE:-}"
|
|
PUSH="${PUSH_OVERRIDE:-false}"
|
|
|
|
echo "Building ${IMAGE_NAME} with UID=${USER_ID} GID=${GROUP_ID} USERNAME=${USERNAME}"
|
|
echo "Primary tag: ${TAG}"
|
|
|
|
if ! docker buildx inspect "${BUILDER_NAME}" >/dev/null 2>&1; then
|
|
docker buildx create --driver docker-container --name "${BUILDER_NAME}" --use >/dev/null
|
|
else
|
|
docker buildx use "${BUILDER_NAME}" >/dev/null
|
|
fi
|
|
|
|
mkdir -p "${CACHE_DIR}"
|
|
|
|
docker buildx build \
|
|
--builder "${BUILDER_NAME}" \
|
|
--load \
|
|
--progress=plain \
|
|
--build-arg USER_ID="${USER_ID}" \
|
|
--build-arg GROUP_ID="${GROUP_ID}" \
|
|
--build-arg USERNAME="${USERNAME}" \
|
|
--build-arg TEA_VERSION="${TEA_VERSION}" \
|
|
--cache-from "type=local,src=${CACHE_DIR}" \
|
|
--cache-to "type=local,dest=${CACHE_DIR},mode=max" \
|
|
--tag "${IMAGE_NAME}:${TAG}" \
|
|
"${SCRIPT_DIR}"
|
|
|
|
if [[ "${PUSH}" == "true" ]]; then
|
|
echo "Pushing ${IMAGE_NAME}:${TAG}"
|
|
docker push "${IMAGE_NAME}:${TAG}"
|
|
|
|
if [[ "${TAG}" == "dev" && -n "${VERSION_TAG}" ]]; then
|
|
docker tag "${IMAGE_NAME}:${TAG}" "${IMAGE_NAME}:${VERSION_TAG}"
|
|
echo "Pushing ${IMAGE_NAME}:${VERSION_TAG}"
|
|
docker push "${IMAGE_NAME}:${VERSION_TAG}"
|
|
fi
|
|
|
|
if [[ "${TAG}" == "dev" ]]; then
|
|
docker tag "${IMAGE_NAME}:${TAG}" "${IMAGE_NAME}:${RELEASE_TAG}"
|
|
echo "Pushing ${IMAGE_NAME}:${RELEASE_TAG}"
|
|
docker push "${IMAGE_NAME}:${RELEASE_TAG}"
|
|
fi
|
|
fi
|