Dockerのbuild時にapt getやapt updateをしていると"Release file for http://security.debian.org/debian-security/dists/buster/updates/InRelease is not valid yet"などのようなエラーが出る場合の問題です。
現象としてはまんま以下の記事のとおりです。
apt update で Release file for xxx is not valid yet って言われる問題
上記の記事では
Docker for Windows の場合は、restart すれば解決する。
とありましたが、WSL2が有効になっていてDocker for windowsがWSL2と統合されているとちょっと話がややこしくなります。
この場合Dockerデーモンが動いているホストはWSL2になるため、たとえWindowsホスト側からdocker build
などのコマンドを実行していても、WSL2側の時刻ズレの影響を受けます。
そのため、WSL2の時刻ズレを修正してあげる必要があります。
WSLの時刻ズレを修正するには、WSLに入った状態で、
sudo hwclock -s
を実行します。
これによりWindowsホスト側の時刻と同期されます。
参考: Release file for repository is not valid yet
Windowsの時刻はズレてないしDockerのrestartしても直らないなーと少しハマったのでメモ。
追記
同じ原因でnpm installが
error code CERT_NOT_YET_VALID
というエラーになった場合もありました。
同様に時刻ズレを補正することで成功するようになりました。