#!/bin/sh set -eu if ! set -o pipefail 2>/dev/null; then : fi REGISTRY_HOST="${REGISTRY_HOST:?missing REGISTRY_HOST}" REGISTRY_USER="${REGISTRY_USER:?missing REGISTRY_USER}" REGISTRY_PASSWORD="${REGISTRY_PASSWORD:?missing REGISTRY_PASSWORD}" BUILD_CONTEXT="${BUILD_CONTEXT:?missing BUILD_CONTEXT}" IMAGE_DOCKERFILE="${IMAGE_DOCKERFILE:?missing IMAGE_DOCKERFILE}" IMAGE_DESTINATION="${IMAGE_DESTINATION:?missing IMAGE_DESTINATION}" APP_V="${APP_V:?missing APP_V}" GIT_REV="${GIT_REV:?missing GIT_REV}" BUILD_BRANCH="${BUILD_BRANCH:?missing BUILD_BRANCH}" BUILD_DATE="${BUILD_DATE:?missing BUILD_DATE}" BUILD_USER="${BUILD_USER:?missing BUILD_USER}" BUILD_PLATFORM="${BUILD_PLATFORM:-linux/amd64}" BUILDER_NAME="${BUILDER_NAME:-sendico-cross-builder}" if [ ! -S /var/run/docker.sock ]; then echo "[buildx] docker socket not found at /var/run/docker.sock" >&2 exit 69 fi printf '%s' "${REGISTRY_PASSWORD}" | docker login "${REGISTRY_HOST}" --username "${REGISTRY_USER}" --password-stdin docker run --rm --privileged tonistiigi/binfmt --install amd64 if docker buildx inspect "${BUILDER_NAME}" >/dev/null 2>&1; then docker buildx use "${BUILDER_NAME}" else docker buildx create --name "${BUILDER_NAME}" --driver docker-container --use fi docker buildx inspect --bootstrap >/dev/null docker buildx build \ --platform "${BUILD_PLATFORM}" \ --file "${IMAGE_DOCKERFILE}" \ --tag "${IMAGE_DESTINATION}" \ --build-arg APP_VERSION="${APP_V}" \ --build-arg GIT_REV="${GIT_REV}" \ --build-arg BUILD_BRANCH="${BUILD_BRANCH}" \ --build-arg BUILD_DATE="${BUILD_DATE}" \ --build-arg BUILD_USER="${BUILD_USER}" \ --provenance=false \ --pull \ --push \ "${BUILD_CONTEXT}"