diff options
author | Mathijs van Veluw <[email protected]> | 2024-04-27 21:51:14 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2024-04-27 21:51:14 +0200 |
commit | ca9234ed869a3c2bbe2d340d18224179f4ad1d6b (patch) | |
tree | 5f12c7aad445bb8ec27a0147f545812ac4c3b4af /docker/Dockerfile.j2 | |
parent | 27dc67fadd3d45b9f7d8d37407cef9453b8f5802 (diff) | |
download | vaultwarden-ca9234ed869a3c2bbe2d340d18224179f4ad1d6b.tar.gz vaultwarden-ca9234ed869a3c2bbe2d340d18224179f4ad1d6b.zip |
Add extra (unsupported) container build arch's (#4524)
There was a PR (#4370) to add i686/i386 support for Vaultwarden.
That specific PR was not a viable way of adding this.
This PR adds extra architectures for Debian based containers which we
will not support by default. Those images will not be build and pushed
to our container registries.
Added the following architectures:
- linux/386
- linux/ppc64le
- linux/s390x
Again, there will be no major support for these architectures, but it
will allow people who use these architectures to build a Debian based
binary more easily
Diffstat (limited to 'docker/Dockerfile.j2')
-rw-r--r-- | docker/Dockerfile.j2 | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/docker/Dockerfile.j2 b/docker/Dockerfile.j2 index e8f81469..73a9c2a5 100644 --- a/docker/Dockerfile.j2 +++ b/docker/Dockerfile.j2 @@ -108,9 +108,17 @@ RUN USER=root cargo new --bin /app WORKDIR /app {% if base == "debian" %} -# Environment variables for cargo across Debian and Alpine +# Environment variables for Cargo on Debian based builds +ARG ARCH_OPENSSL_LIB_DIR \ + ARCH_OPENSSL_INCLUDE_DIR + RUN source /env-cargo && \ if xx-info is-cross ; then \ + # Some special variables if needed to override some build paths + if [[ -n "${ARCH_OPENSSL_LIB_DIR}" && -n "${ARCH_OPENSSL_INCLUDE_DIR}" ]]; then \ + echo "export $(echo "${CARGO_TARGET}" | tr '[:lower:]' '[:upper:]' | tr - _)_OPENSSL_LIB_DIR=${ARCH_OPENSSL_LIB_DIR}" >> /env-cargo && \ + echo "export $(echo "${CARGO_TARGET}" | tr '[:lower:]' '[:upper:]' | tr - _)_OPENSSL_INCLUDE_DIR=${ARCH_OPENSSL_INCLUDE_DIR}" >> /env-cargo ; \ + fi && \ # We can't use xx-cargo since that uses clang, which doesn't work for our libraries. # Because of this we generate the needed environment variables here which we can load in the needed steps. echo "export CC_$(echo "${CARGO_TARGET}" | tr '[:upper:]' '[:lower:]' | tr - _)=/usr/bin/$(xx-info)-gcc" >> /env-cargo && \ @@ -126,13 +134,14 @@ RUN source /env-cargo && \ # Configure the DB ARG as late as possible to not invalidate the cached layers above ARG DB=sqlite,mysql,postgresql {% elif base == "alpine" %} -# Shared variables across Debian and Alpine +# Environment variables for Cargo on Alpine based builds RUN echo "export CARGO_TARGET=${RUST_MUSL_CROSS_TARGET}" >> /env-cargo && \ # To be able to build the armv6 image with mimalloc we need to tell the linker to also look for libatomic if [[ "${TARGETARCH}${TARGETVARIANT}" == "armv6" ]] ; then echo "export RUSTFLAGS='-Clink-arg=-latomic'" >> /env-cargo ; fi && \ # Output the current contents of the file cat /env-cargo +# Configure the DB ARG as late as possible to not invalidate the cached layers above # Enable MiMalloc to improve performance on Alpine builds ARG DB=sqlite,mysql,postgresql,enable_mimalloc {% endif %} |