mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-11-10 13:58:24 +01:00
* s3vectors: bound body buffering before authentication * docs: include vector engine installation and source builds * s3vectors: prevent MIME sniffing of JSON error responses * docs: load vector Cargo configuration when building from source * docs: note the native protoc requirement for Windows vector builds * docs: make vector source checkout and working directory explicit * ci: handle deb822 sources during Ubuntu mirror failover * ci: bound Ubuntu mirror attempts and reject partial index updates
24 lines
1.1 KiB
Bash
Executable File
24 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Install packages, falling through to the next Ubuntu mirror when one is
|
|
# unreachable. See docker/Dockerfile.e2e.
|
|
set -e
|
|
|
|
for mirror in azure.archive.ubuntu.com archive.ubuntu.com; do
|
|
for apt_source in /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources; do
|
|
[ -f "$apt_source" ] || continue
|
|
[ -f "$apt_source.orig" ] || cp "$apt_source" "$apt_source.orig"
|
|
sed -E "s|(https?://)[a-z0-9.]*archive\.ubuntu\.com/ubuntu|\1$mirror/ubuntu|g; s|(https?://)security\.ubuntu\.com/ubuntu|\1$mirror/ubuntu|g" \
|
|
"$apt_source.orig" > "$apt_source"
|
|
done
|
|
if timeout --kill-after=5s 120s apt-get -o Acquire::Retries=1 -o Acquire::http::Timeout=15 -o Acquire::https::Timeout=15 -o APT::Update::Error-Mode=any update && \
|
|
DEBIAN_FRONTEND=noninteractive timeout --kill-after=5s 180s apt-get -o Acquire::Retries=1 -o Acquire::http::Timeout=15 -o Acquire::https::Timeout=15 install -y \
|
|
--no-install-recommends --no-install-suggests "$@"; then
|
|
apt-get clean
|
|
rm -rf /var/lib/apt/lists/*
|
|
exit 0
|
|
fi
|
|
echo "apt: $mirror unreachable, trying the next mirror" >&2
|
|
done
|
|
|
|
exit 1
|