[Docker] build tzdata タイムゾーン選択回避方法(ubuntu)

docker build tzdata タイムゾーン選択回避方法

なぜか突然Dockerfileをbuildする時にtzdataでタイムゾーンの選択を求められるようになりました。

以前はこんな画面出なかったのに…

Dockerfile


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 のインストールする順番を変えてみる

Dockerfile

ENV DEBIAN_FRONTEND=noninteractive #入力を求められずにインストールするための呪い
RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y \
	tzdata \# ←gitより前に持ってくる
	git \

あれ…?効果なし

気を取り直してgit と tzdate のRUNを分けてインストールすると…

Dockerfile

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y tzdata
# 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を利用するときの参考にしてみてください!

6 Comments

takeweb0014

貴重な情報、ありがとうございます。
丁度困っていたので、助かりました!

返信する
inductor

DEBIAN_FRONTEND=noninteractive はRUNではなくENVに入れないとうまく動かない気がします

返信する
sleepless-se sleepless-se

inductorさん
ご指摘ありがとうございます!修正しました。

環境変数をRUNしても意味ないですね(;´∀`)

返信する

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください