FROM archlinux as build RUN pacman -Syu --noconfirm \ base-devel \ git \ go \ nodejs-lts-erbium \ npm \ sudo \ yarn RUN \ echo -e 'root ALL=(ALL) ALL\n%wheel ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers && \ useradd -m -U -G wheel builduser USER builduser RUN \ cd && \ export GOROOT=/usr/lib/go && \ export GOPATH=${HOME}/go && \ export PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin && \ git config --global advice.detachedHead false && \ git clone https://aur.archlinux.org/yay-git.git && \ cd yay-git && \ makepkg --syncdeps --install --noconfirm && \ yay -S --noconfirm \ nodejs-ember-cli ARG VAULT_VERSION= ARG VAULT_REPO ARG BUILD_PATH=vault RUN --mount=type=tmpfs,target=/home/builduser/go/src/ \ echo "selected repo: ${VAULT_REPO}" && \ if [ -z "${VAULT_VERSION}" ]; then \ VAULT_VERSION=$( \ git ls-remote "${VAULT_REPO}" | \ awk '$2 ~ /^refs\/tags\/v[0-9]+\.[0-9]+\.[0-9]+$/ { print substr($2,11) }' | sort -V | tail -n1 \ ) ; \ fi && \ echo "selected vault branch: ${VAULT_VERSION}" && \ BUILD_PATH=$(echo "${VAULT_REPO}" | sed -E 's/^.*\/\/(.*)\.git/\1/') && \ BUILD_PATH="${GOPATH}/src/${BUILD_PATH}" && \ git clone \ --branch="${VAULT_VERSION}" \ --depth=1 \ "${VAULT_REPO}" \ "${BUILD_PATH}" && \ cd "${BUILD_PATH}" && \ make static-dist dev-ui && \ cp /go/bin/vault /vault FROM alpine:3 as runtime RUN addgroup vault && \ adduser -S -G vault vault RUN \ mkdir -p \ /vault/file \ /vault/config && \ chown -R vault:vault /vault COPY --from=build /vault /bin/vault ENTRYPOINT /bin/vault server -config /vault/config