답변:
COPY README.md package.json gulpfile.js __BUILD_NUMBER ./
또는
COPY ["__BUILD_NUMBER", "README.md", "gulpfile", "another_file", "./"]
소스 파일 스펙에서 와일드 카드 문자를 사용할 수도 있습니다. 좀 더 자세한 내용은 문서를 참조하십시오 .
디렉토리는 특별하다! 당신이 쓰는 경우
COPY dir1 dir2 ./
실제로 작동합니다
COPY dir1/* dir2/* ./
단일 명령으로 대상 디렉토리 아래에 여러 디렉토리 (그 내용이 아닌)를 복사하려면 소스 디렉토리가 공통 상위에 있고 그 상위에 있도록 빌드 컨텍스트를 설정해야합니다 COPY
.
tar
아카이브로 설정하고 ADD로 추가하는 것이 좋습니다.
COPY <all> <the> <things> <last-arg-is-destination>
그러나 여기 문서에서 발췌 한 중요한 내용이 있습니다.
컨텍스트와 다른 파일을 사용하는 여러 Dockerfile 단계가있는 경우 한 번에 하나씩이 아니라 개별적으로 복사하십시오. 이렇게하면 특별히 필요한 파일이 변경 될 경우 각 단계의 빌드 캐시가 무효화됩니다 (단계를 다시 실행해야 함).
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#add-or-copy
단순한
COPY README.md package.json gulpfile.js __BUILD_NUMBER ./
의사 로부터
직접 또는 와일드 카드 사용으로 인해 여러 자원이 지정된 경우 디렉토리 여야하며 슬래시 (/)로 끝나야합니다.
.dockerignore
파일을 만들거나 제외 하지 않은 파일을 제외시킬 수도 있습니다.복사 않으려 .
https://docs.docker.com/engine/reference/builder/#dockerignore-file
docker CLI가 컨텍스트를 docker 데몬으로 보내기 전에 컨텍스트의 루트 디렉토리에서 .dockerignore라는 파일을 찾습니다. 이 파일이 존재하면 CLI는 파일과 일치하는 파일 및 디렉토리를 제외하도록 컨텍스트를 수정합니다. 이를 통해 불필요하게 크거나 민감한 파일과 디렉토리를 데몬에 전송하고 ADD 또는 COPY를 사용하여 이미지에 추가 할 수 있습니다.