| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/usr/bin/env bash
- echo ">>> Building images..."
- # shellcheck source=arches.sh
- source ./hooks/arches.sh
- if [[ -z "${SOURCE_COMMIT}" ]]; then
- # This var is typically predefined by Docker Hub, but it won't be
- # when testing locally.
- SOURCE_COMMIT="$(git rev-parse HEAD)"
- fi
- # Construct a version string in the style of `build.rs`.
- GIT_EXACT_TAG="$(git describe --tags --abbrev=0 --exact-match 2>/dev/null)"
- if [[ -n "${GIT_EXACT_TAG}" ]]; then
- SOURCE_VERSION="${GIT_EXACT_TAG}"
- else
- GIT_LAST_TAG="$(git describe --tags --abbrev=0)"
- SOURCE_VERSION="${GIT_LAST_TAG}-${SOURCE_COMMIT:0:8}"
- fi
- LABELS=(
- # https://github.com/opencontainers/image-spec/blob/master/annotations.md
- org.opencontainers.image.created="$(date --utc --iso-8601=seconds)"
- org.opencontainers.image.documentation="https://github.com/dani-garcia/vaultwarden/wiki"
- org.opencontainers.image.licenses="AGPL-3.0-only"
- org.opencontainers.image.revision="${SOURCE_COMMIT}"
- org.opencontainers.image.source="${SOURCE_REPOSITORY_URL}"
- org.opencontainers.image.url="https://github.com/dani-garcia/vaultwarden"
- org.opencontainers.image.version="${SOURCE_VERSION}"
- )
- LABEL_ARGS=()
- for label in "${LABELS[@]}"; do
- LABEL_ARGS+=(--label "${label}")
- done
- # Check if DOCKER_BUILDKIT is set, if so, use the Dockerfile.buildkit as template
- if [[ -n "${DOCKER_BUILDKIT}" ]]; then
- buildkit_suffix=.buildkit
- fi
- set -ex
- for arch in "${arches[@]}"; do
- docker build \
- "${LABEL_ARGS[@]}" \
- -t "${DOCKER_REPO}:${DOCKER_TAG}-${arch}" \
- -f "docker/${arch}/Dockerfile${buildkit_suffix}${distro_suffix}" \
- .
- done
|