Dockerfile : COPY 대상 파일의 존재가 불확실한 경우에 대응

1950 단어 dockerfile도커
동일한 컨테이너에서도 배포 환경이 다르면 conf 파일이 다르거나 존재하지 않습니다.
conf 파일이 있든 없든 동일한 dockerfile로 build하고 싶습니다.
COPY 대상 파일이 존재하지 않는 경우에도 문제없이 docker build 하는 방법을 조사했을 때의 메모.

COPY 대상 파일이 없는 경우 docker build



COPY 대상 파일 sample.conf가 존재하지 않는 경우의 예



Dockerfile
FROM amazonlinux
COPY sample.conf /etc/
CMD ["cat", "/etc/sample.conf"]

실행 결과


대응



COPY 대상으로서 반드시 존재하는 파일을 하나 지정. 샘플에서는 Dockerfile.
존재가 불확정한 파일은 와일드 카드로 지정.

Dockerfile
FROM amazonlinux
COPY Dockerfile sample.conf* /etc/
CMD ["cat", "/etc/sample.conf"]

실행 결과


Dockerfile은 복사되어 버리므로, 필요하다면 삭제하는 등의 후처리를 추가한다.

참고



와일드카드가 없으면 오류가 발생합니다.

Dockerfile
FROM amazonlinux
COPY Dockerfile sample.conf /etc/
CMD ["cat", "/etc/sample.conf"]



와일드카드만으로도 오류가 발생합니다.

Dockerfile
FROM amazonlinux
COPY sample.conf* /etc/
CMD ["cat", "/etc/sample.conf"]

좋은 웹페이지 즐겨찾기