diff --git a/tools/deploy/production-bootstrap.sh b/tools/deploy/production-bootstrap.sh index 63e3312..8be64b3 100644 --- a/tools/deploy/production-bootstrap.sh +++ b/tools/deploy/production-bootstrap.sh @@ -80,7 +80,20 @@ install_go() { return fi log "Installing Go ${version} for linux-${arch}" - curl -fL "https://go.dev/dl/go${version}.linux-${arch}.tar.gz" -o /tmp/go.tar.gz + local downloaded="" + for url in \ + "https://dl.google.com/go/go${version}.linux-${arch}.tar.gz" \ + "https://golang.google.cn/dl/go${version}.linux-${arch}.tar.gz" \ + "https://go.dev/dl/go${version}.linux-${arch}.tar.gz"; do + if curl -fL --connect-timeout 20 --max-time 300 "$url" -o /tmp/go.tar.gz; then + downloaded="yes" + break + fi + done + if [[ "$downloaded" != "yes" ]]; then + echo "Failed to download Go ${version} for linux-${arch}." >&2 + exit 1 + fi rm -rf /usr/local/go tar -C /usr/local -xzf /tmp/go.tar.gz ln -sf /usr/local/go/bin/go /usr/local/bin/go