69 lines
1.6 KiB
Docker
69 lines
1.6 KiB
Docker
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
|
|
|