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
環境
- 機種:raspberry pi 3 model b+
- OS:Linux raspberry2 5.4.51-v7+ #1333 SMP Mon Aug 10 16:45:19 BST 2020 armv7l GNU/Linux
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"]
原因
最初は単純なネットの不安定かと思いまして何回も実行しましが同じでした。その後調べてみるとこんなイシューがありました。
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