クリエイター:メタボ兔

ウェブやアプリの開発者で利用する色な技術やサーバーや開発環境の設定について共有する場

Dockerfileで「Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/community: temporary error」エラー

エラー発生

使用していたDockerfileが再ビルドしたら突然以下のエラーが発生して来ました。

Step 5/10 : RUN apk --no-cache add dnsmasq
 ---> Running in 9935d2774851
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/armv7/APKINDEX.tar.gz
1996305296:error:0D0D90AD:asn1 encoding routines:ASN1_TIME_adj:error getting time:crypto/asn1/a_time.c:330:
1996305296:error:0D0D90AD:asn1 encoding routines:ASN1_TIME_adj:error getting time:crypto/asn1/a_time.c:330:
1996305296:error:0D0D90AD:asn1 encoding routines:ASN1_TIME_adj:error getting time:crypto/asn1/a_time.c:330:
1996305296:error:0D0D90AD:asn1 encoding routines:ASN1_TIME_adj:error getting time:crypto/asn1/a_time.c:330:
1996305296:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1913:
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/main: Permission denied
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/armv7/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/community: temporary error (try again later)
ERROR: unable to select packages:
  dnsmasq (no such package):
    required by: world[dnsmasq]
ERROR: Service 'dns' failed to build: The command '/bin/sh -c apk --no-cache add dnsmasq' returned a non-zero code: 1

環境

Dockerfile

FROM alpine

# 外部からの受付とデフォルト値
ARG DOCKER_LOCAL_IP=127.0.0.1

# 変数を環境変数にセット
ENV DOCKER_LOCAL_IP=$DOCKER_LOCAL_IP

RUN apk --no-cache add dnsmasq

RUN mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq-origin
COPY convert2hosts-dnsmasq /usr/sbin/dnsmasq
RUN chmod +x /usr/sbin/dnsmasq

EXPOSE 53 53/udp

ENTRYPOINT ["dnsmasq", "-k", "--log-facility=/var/log/dnsmasq.log"]

原因

最初は単純なネットの不安定かと思いまして何回も実行しましが同じでした。その後調べてみるとこんなイシューがありました。

gitlab.alpinelinux.org

Dockerfileの「FROM alpine」の部分でlatest(3.13.5)が利用されている状況でした。簡単にコンテナから外部へネットがつながるかを試してみます。

# docker pull alpine:3.13
# docker run --rm --name alpine-test alpine:3.13 ping -c3 8.8.8.8
ping: clock_gettime(MONOTONIC) failed
PING 8.8.8.8 (8.8.8.8): 56 data bytes

alpine:3.13.5を利用すると外部のネット(ドメイン)がうまく動かないようですね。

# docker pull alpine:3.12
# docker run --rm --name alpine-test alpine:3.12 ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=113 time=32.343 ms
64 bytes from 8.8.8.8: seq=1 ttl=113 time=8.407 ms
64 bytes from 8.8.8.8: seq=2 ttl=113 time=7.564 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 7.564/16.104/32.343 ms

出来ました!!!

対応

Dockerfileの修正を行いました。

- FROM alpine
+ FROM alpine:3.12