VScode Remote containerでの時間同期の話とDockerのtimezone設定方法
先日構築したVScode Remote containerで意気揚々とgo言語をやってたんだけど、time.Nowで時間取得したら全然コンピューターの時間が違うのだった。
Dockerについて調べたところコンテナ内の時間は基本ローカルOSに同期しているらしい。コンテナ内のターミナルでdateコマンドを打つとtimezoneがUTCだった。
root@docker:# date
Mon May 25 08:56:26 UTC 2020
結論から話すと
DockerfileにAsia/Tokyoの設定を追加した。
調べるとDockerのtimezone論議は色々情報が錯綜している模様
これを見るとDockerfileに環境変数とシンボリックリンクの設定をすると、ディストリビューションに左右されないほとんどのLinuxで使用できるtimezoneの設定ができるみたいだ!!賢い!!!ちなみにAnserの一番上に来ているものです。
実行した詳細は以下の通り。
VScode Remote containerのDockerfileにAsia/Tokyoの設定を追加した。
対象のコンテナを開くとDockerfileがあるのでこれを編集し、設定を入れました。VScode Remote containerの開発環境を作った話はこちら。
左下の緑のところからコンテナのリモートを終了し、再度VScodeのコンテナを開くと「Rebuild」するか尋ねられるので実行する。開くまでちょっと時間かかるので少し待つ。
無事にJSTになった!!よかった!!
root@docker:# date
Mon May 25 17:57:27 JST 2020
あとがき
またもやDockerの勉強になった。少しずつ設定を覚えていこう。今回はコンテナ内での設定方法にしたけど、「docker run」コマンドでDocker起動時に設定する方法も良さそう。これは使う人次第だろうね。今の所はせっかくの仮想環境なのでコンテナ内で解決!!