From a2df8c33d45602fd38ed4dbbf79262723d00362e Mon Sep 17 00:00:00 2001 From: nessi Date: Wed, 18 Mar 2026 08:59:44 +0100 Subject: [PATCH] feat: add retry logic and explicit Alpine repositories to gateway Dockerfile Add explicit Alpine 3.21 main and community repository URLs to /etc/apk/repositories. Implement 5-attempt retry loop with 3-second delays for apk update and package installation to handle transient network failures during Docker builds. --- deploy/gateway/Dockerfile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/deploy/gateway/Dockerfile b/deploy/gateway/Dockerfile index c44b7df..c3e0393 100644 --- a/deploy/gateway/Dockerfile +++ b/deploy/gateway/Dockerfile @@ -1,6 +1,16 @@ FROM alpine:3.21 -RUN apk add --no-cache bash curl jq wireguard-tools nftables +RUN set -eux; \ + printf '%s\n' \ + 'https://dl-cdn.alpinelinux.org/alpine/v3.21/main' \ + 'https://dl-cdn.alpinelinux.org/alpine/v3.21/community' \ + > /etc/apk/repositories; \ + for attempt in 1 2 3 4 5; do \ + apk update && apk add --no-cache bash curl jq wireguard-tools nftables && exit 0; \ + echo "apk install attempt ${attempt} failed, retrying..." >&2; \ + sleep 3; \ + done; \ + exit 1 WORKDIR /app COPY scripts/gateway-entrypoint.sh /scripts/gateway-entrypoint.sh