Dockerfile
https://docs.docker.com/engine/reference/builder/
사용법[편집 | 원본 편집]
docker build 명령은 Dockerfile
과 context로부터 이미지를 빌드한다. 빌드에서 context는 PATH
나 URL
에 정의된 위치에서의 파일들로 설정한다. URL
은 Git 저장소 위치이다.
빌드 context는 재귀적으로 진행되어진다. 그래서, PATH
는 모든 하위 디렉토리들을 포함한다. URL
은 저장소와 그 submodules를 포함한다.
다음 예제는 현재 디렉토리(.
)를 build context로 사용한 build 명령을 보여준다.
$ docker build .
build는 CLI가 아니라 Docker daemon이 실행한다. 빌드 프로세스의 첫번째는 전체 context를(재귀적으로) 데몬에게 보낸다. 대부분의 경우에, 빈 디렉토리를 컨텍스트로 시작하고 그 디렉토리에 Dockerfile을 유지하는게 제일 좋다. 오직 Dockerfile을 빌드하는데 필요한 파일들만 더해라.
build context에서 파일을 사용하기 위해서, Dockerfile
은 COPY
instruction처럼 instruction에 정의된 파일을 참조한다. 빌드성능을 향상하려면, context 디렉토리에 .dockerignore 파일을 추가해서 디렉토리나 파일을 제외해라. create a .dockerignore file 페이지를 참고해.
관행적으로, Dockerfile은 context의 root에 있는 Dockerfile을 호출한다. 너는 파일시스템에서 어디에 있는 Dockerfile을 지정하기 위해 docker build에서 -f 플래그를 사용할 수 있다.
$ docker build -f /path/to/a/Dockerfile .
기타[편집 | 원본 편집]
한글입력[편집 | 원본 편집]
ENV LC_ALL=C.UTF-8
타임존[편집 | 원본 편집]
ENV TZ=Asia/Seoul
에러등[편집 | 원본 편집]
the input device is not a TTY
--detach 옵션을 넣어서 Detached mode(백그라운드 모드)로 실행되도록 한다.
Environment replacement[편집 | 원본 편집]
ENV DEBIAN_FRONTEND noninteractive
Dockerfile을 빌드할 때 사용자 입력을 받을 수 없으므로 (tzdata설치시 타임존을 입력해야 하는 등) 사용자 입력을 받지 않도록 한다.