[追記]
環境構築手順のまとめを Windows 10 Home WSL2でDockerを使う に更新しました
環境
- WSL2 (Windows 10 Home)
- Docker for Windows
エラー
Docker上で、AWSと連携しようとしたときに、
Aws::S3::Errors::RequestTimeTooSkewed: The difference between the request time and the current time is too large.
のエラーが出た
原因
WSL2で動くDockerコンテナの時刻が大幅にずれているのが原因
Windows ホスト側
$ data
Sun Aug 30 18:16:29 JST 2020
コンテナのシェル内
$ data
Sun Aug 28 11:16:29 JST 2020
解決法
はじめに
Aws::S3::Errors::RequestTimeTooSkewed
のエラーはTimezoneが違う場合でも発生するので、
docker-compose.yml 内でtimezone をJSTに設定しとく。
docker-compose.yml
services:
web:
environment:
TZ: Asia/Tokyo
つぎに
WSL2の時刻を data --set
コマンドで同期させる。
まず、コンテナのシェル内でdataコマンドを使うときに、 operation not permitted
にならないように、権限設定をしとく必要がある。
docker-compose.yml
services:
web:
privileged: true
つぎに
コンテナのシェル内で、data
コマンドを使って日付を変更する
$ data --set "2020-08-30 18:16:29"
で完了。
他に試したこと
-
hwclock -s
を用いて無理やり時間を変えれるらしい。
-> 下記のエラーが出て、少し解決しようとしてみたが、謎すぎて諦めた
$ hwclock -s
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --debug option to see the details of our search for an access method
参考リンク