[Laradock] コンテナの apt-get の署名が期限切れの場合の対処方法
こんにちは。最近、ズボンを新調した k-so16 です。緊急事態宣言が解除され、ズボンのウエストが合っていないという悩みからやっと解放されました(笑)
既存のプロジェクトの動作を確認するために、実行環境を Laradock で整えることにしました。既存のリポジトリに Laradock を Git のサブモジュールとして組込みコンテナーをビルドしたところ、エラーが発生しました。
エラーの内容としては、 apt-get
が実行される際に参照している 署名の有効期限が切れている とのことで、ビルドが途中で止まってしまうので頭を悩ませていました。いろいろ試行錯誤したり解決方法を調べたりし、なんとか解決方法を見つけることができました。
本記事では、 Laradock をビルドする際に発生する apt-get
の署名の期限切れエラーに対処する方法を紹介します。
本記事で想定する読者層は以下の通りです。
- Docker についての基礎的な操作方法を知っている
- Laradock に関する基礎的な知識を有している
筆者の動作環境
筆者の動作環境と Docker および Laradock のバージョンは以下の通りです。
- Windows 10 Pro 1909
- Docker Engine: 19.03.8
- docker-compose: 1.25.5
- Laradock: v10.0
Laradock のビルド中に発生したエラー
Laradock を GitHub のリポジトリ から clone して起動しようとしたところ、ビルドエラーが発生しました。どうやら workspace のビルドで実行される apt-get
で参照される署名が期限切れ のものがいくつかあり、コマンドの実行が失敗して止まっているようでした。
解決方法
Docker で 不要になったイメージを削除 した後、再度ビルドし直すことで解決しました。
docker image prune
docker-compose up -d workspace
過去に Laradock を利用した際に pull してきたイメージが残ったまま になっており、別プロジェクトとして新たに clone した Laradock でビルドしようとした際に 古いイメージが再利用され 、署名が切れたままになっていることが原因と思われます。
試したこと
解決に至るまでに、自身でも以下のような試行錯誤していました。
- Docker を再起動
- Windows を再起動
Dockerfile
やdocker-compose.yml
の実行コマンドの変更wget
などで署名を取得し、apt-key
でキーを更新
Windows で Docker がうまく動かない場合、 とりあえず再起動 するとトラブルが解消することがそこそこあるのですが、今回のケースでは、残念ながら再起動では解決しませんでした。
署名の期限切れがエラーの原因だったので、 署名を取得してキーを更新させるコマンドを apt-get
の実行前に注入 したら解決するかなと思いましたが、うまくキーの更新が渡されなかったようで失敗に終わりました。この方法で解決したとしても、 Dockerfile
や docker-compose.yml
といった Laradock の設定ファイルに差分が生じてしまうので、他の手段も模索していたかもしれません(笑)
まとめ
本記事のまとめは以下の通りです。
- ビルドエラーが発生したら不要になった Docker イメージの削除を実行
- イメージを pull し直すことで解決につながる可能性がある
以上、 k-so16 でした。今回のトラブルで、少し Docker の経験値が上がったような気がします(笑)