"Dockerfile"의 두 판 사이의 차이
(새 문서: == Environment replacement == <syntaxhighlight lang="dockerfile"> ENV DEBIAN_FRONTEND noninteractive </syntaxhighlight>Dockerfile을 빌드할 때 사용자 입력을 받을 수 없...) |
|||
(같은 사용자의 중간 판 6개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
+ | [[docker cli]] | ||
+ | |||
+ | https://docs.docker.com/engine/reference/builder/ | ||
+ | |||
+ | == 사용법 == | ||
+ | [[Docker cli#build|docker build]] 명령은 <code>Dockerfile</code>과 ''context''로부터 이미지를 빌드한다. 빌드에서 context는 <code>PATH</code>나 <code>URL</code>에 정의된 위치에서의 파일들로 설정한다. <code>URL</code>은 Git 저장소 위치이다. | ||
+ | |||
+ | 빌드 context는 재귀적으로 진행되어진다. 그래서, <code>PATH</code>는 모든 하위 디렉토리들을 포함한다. <code>URL</code>은 저장소와 그 submodules를 포함한다. | ||
+ | |||
+ | 다음 예제는 현재 디렉토리(<code>.</code>)를 build context로 사용한 build 명령을 보여준다. | ||
+ | $ docker build . | ||
+ | build는 CLI가 아니라 Docker daemon이 실행한다. 빌드 프로세스의 첫번째는 전체 context를(재귀적으로) 데몬에게 보낸다. 대부분의 경우에, 빈 디렉토리를 컨텍스트로 시작하고 그 디렉토리에 Dockerfile을 유지하는게 제일 좋다. 오직 Dockerfile을 빌드하는데 필요한 파일들만 더해라. | ||
+ | |||
+ | build context에서 파일을 사용하기 위해서, <code>Dockerfile</code>은 <code>COPY</code> instruction처럼 instruction에 정의된 파일을 참조한다. 빌드성능을 향상하려면, context 디렉토리에 .dockerignore 파일을 추가해서 디렉토리나 파일을 제외해라. [https://docs.docker.com/engine/reference/builder/#dockerignore-file create a .dockerignore file] 페이지를 참고해. | ||
+ | |||
+ | 관행적으로, Dockerfile은 context의 root에 있는 Dockerfile을 호출한다. 너는 파일시스템에서 어디에 있는 Dockerfile을 지정하기 위해 docker build에서 -f 플래그를 사용할 수 있다. | ||
+ | $ docker build -f /path/to/a/Dockerfile . | ||
+ | <br /> | ||
+ | == 기타 == | ||
+ | |||
+ | ===한글입력=== | ||
+ | ENV LC_ALL=C.UTF-8 | ||
+ | |||
+ | === 타임존 === | ||
+ | ENV TZ=Asia/Seoul | ||
+ | |||
+ | [[Docker-compose#타임존|docker-compose에서 타임존]] | ||
+ | ==에러등== | ||
+ | '''the input device is not a [https://ko.wikipedia.org/wiki/%EC%A0%84%EC%8B%A0%ED%83%80%EC%9E%90%EA%B8%B0 TTY]''' | ||
+ | |||
+ | --detach 옵션을 넣어서 Detached mode(백그라운드 모드)로 실행되도록 한다. | ||
== Environment replacement == | == Environment replacement == | ||
<syntaxhighlight lang="dockerfile"> | <syntaxhighlight lang="dockerfile"> | ||
ENV DEBIAN_FRONTEND noninteractive | ENV DEBIAN_FRONTEND noninteractive | ||
</syntaxhighlight>Dockerfile을 빌드할 때 사용자 입력을 받을 수 없으므로 (tzdata설치시 타임존을 입력해야 하는 등) 사용자 입력을 받지 않도록 한다. | </syntaxhighlight>Dockerfile을 빌드할 때 사용자 입력을 받을 수 없으므로 (tzdata설치시 타임존을 입력해야 하는 등) 사용자 입력을 받지 않도록 한다. | ||
+ | [[분류:Docker]] |
2022년 2월 10일 (목) 23:46 기준 최신판
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설치시 타임존을 입력해야 하는 등) 사용자 입력을 받지 않도록 한다.