RaspberryPi4Bでdockerのbuildができない

タイトル通りであるが、正確には「buildしようとするとエラーで進まないものがある」です。

例えばalpineでdovecotを入れたイメージを作ろうと、次のようなDockerfileを作ったとします。

FROM alpine
RUN apk add --no-cache dovecot postfix

$ sudo docker build . するとapkが失敗します。

Sending build context to Docker daemon  3.072kB
Step 1/3 : FROM alpine
 ---> 3e8172af00ce
Step 2/3 : RUN apk add --no-cache dovecot postfix
 ---> Running in 6057e9023911
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/armv7/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/armv7/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/main: temporary error (try again later)
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/community: temporary error (try again later)
ERROR: unable to select packages:
  dovecot (no such package):
    required by: world[dovecot]
  postfix (no such package):
    required by: world[postfix]
The command '/bin/sh -c apk add --no-cache dovecot postfix' returned a non-zero code: 2

apt-get updateなどでも失敗します。

RUN dateとしてみるとわかるのですが、時計がおかしいです。ある時は1970年、ある時は2071年になったりです。時刻を設定しようとするとoperation not permittedとなります。ビルドに特権が使えないことが原因か、それか、ラズパイにはRTCがないのが原因ではないかと。とにかく、ラズパイ上でイメージのビルド、特にOSイメージにアプリケーションだけ追加して最小限の環境を作ろうとする試みは諦めて、既存イメージを使用するほうがよさそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です