54 lines
1.2 KiB
Bash
Executable File
54 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
require() {
|
|
local name="$1"
|
|
if [[ -z "${!name:-}" ]]; then
|
|
echo "Missing env: ${name}" >&2
|
|
exit 2
|
|
fi
|
|
}
|
|
|
|
require ACR_REGISTRY
|
|
require ACR_NAMESPACE
|
|
|
|
image_repo="${IMAGE_REPO:-digital-archive-frontend}"
|
|
image_tag="${IMAGE_TAG:-}"
|
|
|
|
if [[ -z "$image_tag" ]]; then
|
|
if command -v git >/dev/null 2>&1; then
|
|
image_tag="$(git -C "$script_dir" rev-parse --short HEAD 2>/dev/null || true)"
|
|
fi
|
|
fi
|
|
|
|
if [[ -z "$image_tag" ]]; then
|
|
image_tag="$(date +%Y%m%d%H%M%S)"
|
|
fi
|
|
|
|
image_ref="${ACR_REGISTRY}/${ACR_NAMESPACE}/${image_repo}:${image_tag}"
|
|
|
|
if [[ -n "${ACR_USERNAME:-}" && -n "${ACR_PASSWORD:-}" ]]; then
|
|
printf '%s' "$ACR_PASSWORD" | docker login "$ACR_REGISTRY" -u "$ACR_USERNAME" --password-stdin
|
|
fi
|
|
|
|
build_args=()
|
|
if [[ -n "${PKG_MANAGER:-}" ]]; then
|
|
build_args+=(--build-arg "PKG_MANAGER=${PKG_MANAGER}")
|
|
fi
|
|
if [[ -n "${NPM_REGISTRY:-}" ]]; then
|
|
build_args+=(--build-arg "NPM_REGISTRY=${NPM_REGISTRY}")
|
|
fi
|
|
|
|
docker build \
|
|
-f "$script_dir/Dockerfile" \
|
|
-t "$image_ref" \
|
|
"${build_args[@]}" \
|
|
"$script_dir"
|
|
|
|
docker push "$image_ref"
|
|
|
|
echo "Pushed: $image_ref"
|
|
echo "WEB_IMAGE=$image_ref"
|