Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-16 04:51
관리 메뉴

nomad-programmer

[DevOps/Docker] .dockerignore (빌드에 불필요한 파일 제외) 본문

DevOps/Docker

[DevOps/Docker] .dockerignore (빌드에 불필요한 파일 제외)

scii 2020. 12. 2. 01:02

Docker에서 빌드를 하면 빌드를 실행한 디렉토리 아래에 있는 모든 파일이 Docker 데몬으로 전송된다. 그렇기 때문에 빌드에서 제외하고 싶은 파일이 있는경우는 '.dockerignore' 라는 이름의 파일 안에 해당 파일명을 기술해야 한다.

여러개의 파일을 지정할 때는 줄 바꿈을 하여 파일명을 나열한다. 

예를 들어 다음과 같이 빌드 컨텍스트상에 Dockerfile과 Dummyfile을 저장하고, '.dockerignore' 안에 Dummyfile을 지정해보자.

$ ls -al
-rw-rw-r-- 1 scii scii    9 12월  2 00:56 .dockerignore
-rw-rw-r-- 1 scii scii   79 12월  2 00:30 Dockerfile
-rw-rw-r-- 1 scii scii    0 12월  2 00:55 Dummyfile

$ cat .dockerignore
Dummyfile

이 환경에서 다음과 같이 Dockerfile을 만든다. Dockerfile 안에는 Dummyfile을 이미지에 포함시키는 ADD 명령을 기술한다.

FROM ubuntu:latest

# 더미 파일 배치
ADD Dummyfile /tmp/Dummyfile

그 다음 docker build 명령을 실행하여 sample 이라는 이름의 이미지를 만든다.

$ docker build -t sample .

tep 2/2 : ADD Dummyfile /tmp/Dummyfile
ADD failed: stat /var/lib/docker/tmp/docker-builder132714062/Dummyfile: no such file or directory

로그를 확인하면 Dummyfile이 존재하지 않기 때문에 오류가 발생한다는 것을 알 수 있다. 

.dockerignore 파일을 설정해 두면 빌드에 불필요한 파일이 전송되지 않기 때문에 처리 속도가 빨라진다. 이와 같이 불필요한 파일은 Docker의 빌드 대상에서 제외하는 설정을 해 두는 것이 좋다.

Comments