なぜか突然Dockerfileをbuildする時にtzdataでタイムゾーンの選択を求められるようになりました。
以前はこんな画面出なかったのに…
Configuring tzdata
------------------
Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.
1. Africa 4. Australia 7. Atlantic 10. Pacific 13. Etc
2. America 5. Arctic 8. Europe 11. SystemV
3. Antarctica 6. Asia 9. Indian 12. US
GitHubではこのコードを実行すると何やらインストールできるらしいことが書いてあったので実行してみました。
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
しかし、結果はNG
参考にしているものが古かったのでバージョンを上げたら解決するかな?と思ってUbuntuのバージョンを18.04にしてみたけどダメ…
Gitのインストールが原因??
こちらの記事を読んでいるとGitのパッケージインストール後にtzdataをインストールするとのこと。
試しにgit と tzdata のインストールする順番を変えてみる
RUN apt-get update &&
RUN apt-get update && \
apt-get upgrade -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
tzdata \ # ←gitより前に持ってくる
git \
あれ…?効果なし
気を取り直してgit と tzdate のRUNを分けてインストールすると…
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y
# timezone setting
ENV TZ=Asia/Tokyo
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y \
git \
無事インストールできました!
タイムゾーンも日本(JST)になっていることが確認できました。
root@b8dfdd02ae92:/# date
Tue Jul 31 22:18:18 JST 2018
“
標準時(イギリス)にでも住んでいない限りタイムゾーンの設定は必要なのでDockerを利用するときの参考にしてみてください!
補足
ENV DEBIAN_FRONTEND=noninteractive
をすると環境変数が作ったイメージに残ってしまうため、tzdataをインストールするときだけDEBIAN_FRONTEND=noninteractive
を設定するのが正しいようです。
ryneさん教えていただきありがとうございますm(_ _)m
最後の
tzdata \
は
git \
の間違い?
BlueToneさんご指摘ありがとうございます!
記事を修正致しました。
貴重な情報、ありがとうございます。
丁度困っていたので、助かりました!
takeweb0014さん
お役に立ててよかったです(^^)
DEBIAN_FRONTEND=noninteractive はRUNではなくENVに入れないとうまく動かない気がします
inductorさん
ご指摘ありがとうございます!修正しました。
環境変数をRUNしても意味ないですね(;´∀`)
DEBIAN_FRONTEND=noninteractive をENVで入れるのは正しくありません。この方法でbuildすると作ったイメージに環境変数 DEBIAN_FRONTEND=noninteractive が含まれてしまいます。
正しくは
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
のように、tzdataのインストールだけ変数 DEBIAN_FRONTEND=noninteractive を設定した状態で実行させることです。
この方法ならちゃんと実行され、イメージの環境変数には残りません。
ryneさん教えていただきありがとうございます。
記事を修正いたしました。