본문 바로가기
개발/에러해결

Dockerfile build 시 timezone 해결법

by amkorousagi 2022. 10. 21.

에러 내용


Dockerfile build timezone error

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        6. Asia            11. System V timezones
  2. America       7. Atlantic Ocean  12. US
  3. Antarctica    8. Europe          13. None of the above
  4. Australia     9. Indian Ocean
  5. Arctic Ocean  10. Pacific Ocean
Geographic area:

Dockerfile build 시 위와 같은 메시지가 나오고 더 이상 빌드가 진행되지 않는다.

 

에러 원인


Dockerfile은 build 시 사용자 입력을 받을 수 없다.

하지만 timezone을 설정하기 위해 사용자 입력을 요구하고 기다리고 있으니

빌드가 더이상 진행되지 않는 것이다.

 

해결 방법


root image에 따라 아래 예시 Dockerfile 처럼 timezone을 미리 설정하면 해결된다.

1. root image가 ubuntu인 경우

FROM ubuntu:20.04
MAINTAINER hasmi5452@gmail.com

RUN apt-get update && \
    apt-get install -yq tzdata && \
    ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime && \
    dpkg-reconfigure -f noninteractive tzdata # 타임존 미리 설정
RUN apt-get install -y git
RUN apt-get install -y vim
RUN apt-get install -y npm

RUN mkdir psc
WORKDIR /psc

EXPOSE 10004

2. root image가 debian인 경우

FROM debian:10

ENV TZ="Asia/Seoul" # 타임존 미리 설정

...
하략
...

 

또는 사용자 입력 요청을 무시하도록 설정하면 일단 빌드는 된다. (추천하지 않는다)

3.  사용자 입력 요청 무시

...
상략
...

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get -qq install {your-package}
또는
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get -qq install {your-package}

...
하략
...

 

아래는 1의 방법으로 문제를 해결한 스크린샷이다.

build 성공

참고 자료


 

Set timezone in your docker image

TL;DR RUN apt update && apt install tzdata -y ENV TZ="America/New_York" ...

dev.to

 

 

Why is DEBIAN_FRONTEND=noninteractive discouraged in Docker files?

Setting the DEBIAN_FRONTEND=noninteractive environment variable in docker files is highly discouraged as it may have an adverse effect.

bobcares.com

 

댓글