2023-11-26 10:30:29 +00:00
|
|
|
FROM docker.io/clux/muslrust:1.74.0-stable as build
|
2021-05-15 12:19:58 +00:00
|
|
|
|
2021-05-15 13:25:24 +00:00
|
|
|
ARG WEBVAULT_VERSION
|
2023-11-26 10:30:29 +00:00
|
|
|
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
|
2020-02-22 15:58:35 +00:00
|
|
|
|
2021-06-18 20:15:42 +00:00
|
|
|
# renovate: datasource=github-releases depName=dani-garcia/bw_web_builds versioning=loose
|
2023-11-20 07:57:07 +00:00
|
|
|
ENV WEBVAULT_VERSION="${WEBVAULT_VERSION:-v2023.10.0}"
|
2023-11-26 10:30:29 +00:00
|
|
|
# renovate: datasource=github-releases depName=dani-garcia/vaultwarden
|
|
|
|
ENV VAULTWARDEN_VERSION="${VAULTWARDEN_VERSION:-1.30.1}"
|
2020-02-22 15:58:35 +00:00
|
|
|
|
2023-11-26 10:30:29 +00:00
|
|
|
WORKDIR /src
|
2020-02-22 15:58:35 +00:00
|
|
|
|
2023-11-26 10:30:29 +00:00
|
|
|
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}'" && \
|
2022-06-21 13:15:22 +00:00
|
|
|
curl -SsfL "https://github.com/dani-garcia/bw_web_builds/releases/download/${WEBVAULT_VERSION}/bw_web_${WEBVAULT_VERSION}.tar.gz" | \
|
2023-11-26 10:30:29 +00:00
|
|
|
tar xz -C /release
|
2020-02-22 15:58:35 +00:00
|
|
|
|
2023-11-26 10:30:29 +00:00
|
|
|
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
|
2020-02-22 15:58:35 +00:00
|
|
|
|
2023-11-26 10:30:29 +00:00
|
|
|
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
|
2020-02-22 15:58:35 +00:00
|
|
|
|
2023-11-26 10:30:29 +00:00
|
|
|
RUN ldd target/$(cat rust_target)/release/vaultwarden && \
|
|
|
|
target/$(cat rust_target)/release/vaultwarden --help && \
|
|
|
|
target/$(cat rust_target)/release/vaultwarden --version
|
2020-02-22 15:58:35 +00:00
|
|
|
|
2023-11-26 11:41:55 +00:00
|
|
|
FROM scratch
|
2023-11-26 10:30:29 +00:00
|
|
|
|
|
|
|
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 /
|
|
|
|
|
|
|
|
EXPOSE 8000
|
|
|
|
EXPOSE 3012
|
2020-02-22 15:58:35 +00:00
|
|
|
|
|
|
|
STOPSIGNAL SIGTERM
|
|
|
|
|
2023-11-26 10:30:29 +00:00
|
|
|
CMD ["/vaultwarden"]
|