VS CodeのRemote - Containers拡張機能を利用してコンテナ上でソースコードを書いていたところ、GitHubに草が生えないことがあったので対処法をまとめておく。
[GitHubに草が生えない]
ここ1ヶ月ほど、VS CodeのRemote - Containers拡張機能を利用してソースコードを書いているとブログで書いた。
『試して理解 Linuxのしくみ』の実験プログラムをVS CodeのRemote - Containersで動かす - kdnakt blog
VS CodeのRemote - Containers拡張とDiagramsを利用してクラウド構成図を書く - kdnakt blog
その途中で、手元のGitリポジトリでコミットした変更をGitHubにプッシュしたが、何度か草が生えないことがあった。
プッシュしたリポジトリのコミット履歴をGitHub上で確認すると、コミットした時刻が日本時間ではなく9時間の時差があった。このため、日付が変わった直後にGitHubを確認すると、前日にコミットしたものとみなされ、草が生えなかった。
時差が発生している原因は、VS Code上のターミナルでGit操作を実行した際に、ターミナルが動作しているコンテナのタイムゾーンの設定がUTCとなっていることだった。
VS Code上でターミナルを開き、date
コマンドを実行すると、次のようにタイムゾーンがUTCになっていることが確認できた。
# date
Mon Jul 13 15:05:00 UTC 2020
[コンテナのタイムゾーンを設定する]
コンテナのタイムゾーンを変更するには、Dockerfileの適当な位置に以下の行を追加する。
ENV TZ Asia/Tokyo
または、以下の行を追加する。どちらかで良い。
ENV TZ JST-9
そのままだと反映されないので、export TZ=Asia/Tokyo
のようにexport
コマンドを実行するか、Macの場合Command + Shift + PでRemote - Containers: Rebuild Containerコマンドを実行する必要がある。
あらためてdate
コマンドを実行すると、タイムゾーンがJSTに変更されていることが確認できた。
# date
Tue Jul 14 00:10:00 JST 2020
こちらの記事を参考に実装した。
同記事によると、いくつかこの方法では対応できないOSもあるようだ。