source

ADD 명령을 사용하여 디렉터리를 다른 디렉터리로 복사

bestscript 2023. 8. 8. 23:23

ADD 명령을 사용하여 디렉터리를 다른 디렉터리로 복사

http://docs.docker.com/engine/reference/builder/ #add를 읽었는데 문제가 생겼습니다.로컬 디렉터리를 복사합니다.go도커로/user/local/

노력했습니다.

ADD go /usr/local/

그리고:

ADD /go/ /usr/local/ 

또한:

RUN chmod 0755 /usr/local/go/src/make.bash

그러나 다음 오류 메시지가 표시됩니다.

/usr/local/go/src/make.bash: No such file or directory

그러나 그 지역의go디렉터리에 포함됨make.bash.

ADD go /usr/local/

로컬의 내용을 복사합니다.go로의 디렉토리/usr/local/도커 이미지의 디렉터리입니다.

복사하기go디렉토리 자체/usr/local/사용:

ADD go /usr/local/go

또는

COPY go /usr/local/go

실제로.ADD go /usr/local/의 내용을 추가합니다.go폴더 자체가 아니라 폴더를 사용할 수 있습니다. Thomasleveil 솔루션을 사용할 수 있습니다. 또는 어떤 이유로 작동하지 않는 경우 변경할 수 있습니다.WORKDIR로./usr/local/그런 다음 디렉토리를 다음과 같이 추가합니다.

WORKDIR /usr/local/
COPY go go/

또는

WORKDIR /usr/local/go
COPY go ./

하지만 여러 개의 폴더를 추가하려면 그렇게 추가하는 것이 번거로울 것입니다. 현재 문제에서 본 유일한 해결책은 다음과 같습니다.COPY . .모든 원하지 않는 디렉토리 및 파일 제외.dockerignore예를 들어 폴더와 파일이 있다고 가정해 보겠습니다.

- src 
- tmp 
- dist 
- assets 
- go 
- justforfun 
- node_modules 
- scripts 
- .dockerignore 
- Dockerfile 
- headache.lock 
- package.json 

그리고 추가하고 싶습니다.src assets package.json justforfun go그래서:

도커 파일:

FROM galaxy:latest

WORKDIR /usr/local/
COPY . .

.vmserignore 파일:

node_modules
headache.lock
tmp
dist

이런 식으로, 당신은 무시합니다.node_modules headache.lock tmp dist추가되지 않습니다!

두 번째 접근법: 또는 더 많은 재미를 위해(또는 더 많은 사람들을 혼란스럽게 하는 것을 좋아합니다:P):

*
!src 
!assets 
!go 
!justforfun 
!scripts 
!package.json 

이렇게 하면 모든 항목을 무시하고 "무시 목록"에서만 복사하거나 추가할 항목을 제외할 수 있습니다.

답변이 늦었지만 동일한 내용을 적용할 수 있는 방법을 더 추가하는 경우가 더 많습니다.

복사를 사용할 수 있습니다.디렉토리를 명시적으로 지정해야 합니다.그것은 스스로 만들어지지 않을 것입니다.

COPY go /usr/local/go

참조:도커 CP 참조

공식 문서에 명시된 바와 같이:

디렉토리 자체는 복사되지 않고 내용만 복사됩니다.

속임수는 속으로 가라앉히는 것입니다.<dest>경로 및 다음과 같은 폴더 이름:

COPY src ./src

./src가 아직 컨테이너에 없는 경우에도 COPY 명령은 내부적으로 생성하고 src의 내용을 새 폴더(즉, ./src)에 복사합니다.

몇 년이나 늦었지만, 제 폴더에 .가 있어서 이 문제가 있었습니다.제가 그것을 제거했을 때, 오류가 사라졌습니다.

모든 파일을 지정된 위치에 추가하려는 경우 유용합니다.

#ADD XML SUITE 파일ADD src/test/resources/xmls/* /usr/share/tag/

언급URL : https://stackoverflow.com/questions/26504846/copy-directory-to-another-directory-using-add-command