エラー状況
CircleCIでのビルド・デプロイの設定をしているところ、
x509: failed to load system roots and no roots provided
という内容のエラーがrestore_cache
とsave_cache
で発生していました。
エラー内容詳細
適当に文字列は改変しています。
Skipping cache - error checking storage: RequestError: send request failed
caused by: Get https://circle-production-customer-artifacts.s3.amazonaws.com/?list-type=2&prefix=picard%2F59d0000000000global%2Fcaches%2FXXXXXXXX%22222-yhTkxxxxxxxxxxxxxxxxxqrvrm8IW_Hrsxxxxxx%3D: x509: failed to load system roots and no roots provided
どうやら、AWS S3にオレオレ自己証明書を使って暗号化してキャッシュを保存する動作のようです。
原因
CircleCIのビルドプロセスでcacheの暗号化に使うroot証明書を自分で生成しているのですが、そのためのコマンドが入っていない環境を使っていることが原因でした。
今回ビルドに指定していたDockerイメージがalpine
をベースにしたもので、最低限のライブラリしか入れていなかったのです。
対処
ca-certificates
パッケージをインストールする。
alpine linuxならば以下のコマンドをDockerfileに追加します。
RUN apk add --no-cache ca-certificates