74 lines
2.6 KiB
Docker
74 lines
2.6 KiB
Docker
FROM docker.io/clux/muslrust:1.76.0-stable@sha256:d0a8f9625093c359f5251ef78e8178c5c4f3ba5f2fdf4b3bd9dc5aa4f17f8cba as build
|
|
|
|
ARG WEBVAULT_VERSION
|
|
ARG VAULTWARDEN_VERSION
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
ARG LANG=C.UTF-8
|
|
ARG TZ=UTC
|
|
ARG RUSTFLAGS="-C link-arg=-s"
|
|
ARG DB=sqlite,postgresql
|
|
|
|
ARG TARGETPLATFORM
|
|
|
|
# renovate: datasource=github-releases depName=dani-garcia/bw_web_builds versioning=loose
|
|
ENV WEBVAULT_VERSION="${WEBVAULT_VERSION:-v2024.1.2}"
|
|
# renovate: datasource=github-releases depName=dani-garcia/vaultwarden
|
|
ENV VAULTWARDEN_VERSION="${VAULTWARDEN_VERSION:-1.30.3}"
|
|
|
|
WORKDIR /src
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends && \
|
|
mkdir -p /release/web-vault && \
|
|
mkdir -p /data
|
|
|
|
RUN echo "Using Vaultwarden version '${VAULTWARDEN_VERSION##v}'" && \
|
|
curl -sSL "https://github.com/dani-garcia/vaultwarden/archive/${VAULTWARDEN_VERSION##v}.tar.gz" | \
|
|
tar xz --strip-components=1 && \
|
|
echo "Using Web Vault version '${WEBVAULT_VERSION##v}'" && \
|
|
curl -SsfL "https://github.com/dani-garcia/bw_web_builds/releases/download/${WEBVAULT_VERSION}/bw_web_${WEBVAULT_VERSION}.tar.gz" | \
|
|
tar xz -C /release
|
|
|
|
RUN echo "Building for platform '$TARGETPLATFORM'" && \
|
|
case "$TARGETPLATFORM" in \
|
|
"linux/amd64") echo x86_64-unknown-linux-musl > rust_target ;; \
|
|
"linux/arm64") echo aarch64-unknown-linux-musl > rust_target ;; \
|
|
*) exit 1 ;; \
|
|
esac
|
|
|
|
RUN rustup set profile minimal && \
|
|
rustup target add $(cat rust_target) && \
|
|
VW_VERSION="${VAULTWARDEN_VERSION##v}" cargo build -j 8 --features "$DB" --target $(cat rust_target) --release
|
|
|
|
RUN ldd target/$(cat rust_target)/release/vaultwarden && \
|
|
target/$(cat rust_target)/release/vaultwarden --help && \
|
|
target/$(cat rust_target)/release/vaultwarden --version
|
|
|
|
FROM docker.io/alpine:3.19@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
|
|
|
|
LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>"
|
|
LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>"
|
|
LABEL org.opencontainers.image.title="Vaultwarden"
|
|
LABEL org.opencontainers.image.url="https://gitea.rknet.org/container/vaultwarden"
|
|
LABEL org.opencontainers.image.source="https://gitea.rknet.org/container/vaultwarden"
|
|
LABEL org.opencontainers.image.documentation="https://gitea.rknet.org/container/vaultwarden"
|
|
|
|
ENV DATA_FOLDER=/data
|
|
ENV ROCKET_ADDRESS=0.0.0.0
|
|
ENV ROCKET_PORT=8000
|
|
ENV WEBSOCKET_ADDRESS=0.0.0.0
|
|
ENV WEBSOCKET_PORT=3012
|
|
|
|
COPY --from=build --chown=65532:65532 /data /data
|
|
COPY --from=build /release/web-vault /web-vault
|
|
COPY --from=build /src/target/**/release/vaultwarden /bin/vaultwarden
|
|
|
|
EXPOSE 8000
|
|
EXPOSE 3012
|
|
|
|
STOPSIGNAL SIGTERM
|
|
|
|
USER 65532
|
|
|
|
CMD ["/bin/vaultwarden"]
|