Dockerfile

wwiki
이동: 둘러보기, 검색

docker cli

https://docs.docker.com/engine/reference/builder/

사용법[편집 | 원본 편집]

docker build 명령은 Dockerfilecontext로부터 이미지를 빌드한다. 빌드에서 context는 PATHURL에 정의된 위치에서의 파일들로 설정한다. URL은 Git 저장소 위치이다.

빌드 context는 재귀적으로 진행되어진다. 그래서, PATH는 모든 하위 디렉토리들을 포함한다. URL은 저장소와 그 submodules를 포함한다.

다음 예제는 현재 디렉토리(.)를 build context로 사용한 build 명령을 보여준다.

$ docker build .

build는 CLI가 아니라 Docker daemon이 실행한다. 빌드 프로세스의 첫번째는 전체 context를(재귀적으로) 데몬에게 보낸다. 대부분의 경우에, 빈 디렉토리를 컨텍스트로 시작하고 그 디렉토리에 Dockerfile을 유지하는게 제일 좋다. 오직 Dockerfile을 빌드하는데 필요한 파일들만 더해라.

build context에서 파일을 사용하기 위해서, DockerfileCOPY 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

docker-compose에서 타임존

에러등[편집 | 원본 편집]

the input device is not a TTY

--detach 옵션을 넣어서 Detached mode(백그라운드 모드)로 실행되도록 한다.

Environment replacement[편집 | 원본 편집]

ENV DEBIAN_FRONTEND noninteractive

Dockerfile을 빌드할 때 사용자 입력을 받을 수 없으므로 (tzdata설치시 타임존을 입력해야 하는 등) 사용자 입력을 받지 않도록 한다.