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.
19 lines
581 B
Docker
19 lines
581 B
Docker
FROM alpine:3.21
|
|
|
|
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
|
|
|
|
ENTRYPOINT ["bash", "/scripts/gateway-entrypoint.sh"]
|