Fix Bullseye builds broken by OpenSSL 3.0 requirement

Vaultwarden 1.35.0+ needs OpenSSL 3.0, but Bullseye has only 1.1.

- Improve Dockerfile version replacement regex
- Enable vendored_openssl for Bullseye to statically link OpenSSL 3.0
- Add build dependencies (make, perl) for OpenSSL compilation
This commit is contained in:
Nico Isenbeck
2025-12-28 07:36:43 +00:00
parent 47ef11cc38
commit 890006ee5e
+15 -4
View File
@@ -116,8 +116,9 @@ sed "$DIR/patch/$ARCH_DIR/Dockerfile.patch" -f <( echo "$SEDCOMMANDS" ) | \
patch "$SRC/docker/Dockerfile.debian" --verbose -o "$DIR/Dockerfile" || \
exit
sed "/docker.io\/library\/rust/s/bookworm/${OS_VERSION_NAME}/g" -i "$DIR/Dockerfile"
sed "/docker.io\/library\/debian/s/bookworm/${OS_VERSION_NAME}/g" -i "$DIR/Dockerfile"
# Replace OS version in Dockerfile (supports bookworm, trixie, bullseye, etc.)
sed -i "s/\(rust:[0-9.]*-slim-\)[a-z]*/\1${OS_VERSION_NAME}/g" "$DIR/Dockerfile"
sed -i "s/\(debian:\)[a-z]*-slim/\1${OS_VERSION_NAME}-slim/g" "$DIR/Dockerfile"
# Prepare Controlfile
CONTROL="$DEBIANDIR/control"
@@ -147,8 +148,18 @@ chmod 644 "$DEBIANDIR/sysusers.conf"
sed tmpfiles.conf > "$DEBIANDIR/tmpfiles.conf" -f <( echo "$SEDCOMMANDS" ) || exit
chmod 644 "$DEBIANDIR/tmpfiles.conf"
echo "[INFO] docker buildx -t vaultwarden-deb $DIR --build-arg DB=$DB_TYPE"
docker buildx build -t vaultwarden-deb "$SRC" --build-arg DB="$DB_TYPE" --target dpkg -f "$DIR/Dockerfile"
#echo "[INFO] docker buildx -t vaultwarden-deb $DIR --build-arg DB=$DB_TYPE"
#docker buildx build -t vaultwarden-deb "$SRC" --build-arg DB="$DB_TYPE" --target dpkg -f "$DIR/Dockerfile"
CARGO_FEATURES="$DB_TYPE"
if [ "$OS_VERSION_NAME" = "bullseye" ]; then
echo "[INFO] Bullseye detected - enabling vendored_openssl for OpenSSL 3 compatibility"
CARGO_FEATURES="$DB_TYPE,vendored_openssl"
perl -i -pe 'print "# Install build dependencies for vendored OpenSSL\nRUN apt-get update && apt-get install -y --no-install-recommends make perl && rm -rf /var/lib/apt/lists/*\n\n" if /^RUN source \/env-cargo && \\$/ && !$done++' "$DIR/Dockerfile"
fi
echo "[INFO] docker buildx -t vaultwarden-deb $DIR --build-arg DB=$CARGO_FEATURES"
docker buildx build -t vaultwarden-deb "$SRC" --build-arg DB="$CARGO_FEATURES" --target dpkg -f "$DIR/Dockerfile"
CID=$(docker run -d vaultwarden-deb)
docker cp "$CID:/outdir/${PACKAGEDIR}.deb" "$DST/${PACKAGEDIR}-${OS_VERSION_NAME}-${REF}-${DB_TYPE}-${ARCH_DIR}.deb"