실제로 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
:
Dockerfile에서 :
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
.dockerignore 파일에서 :
node_modules
headache.lock
tmp
dist
또는 더 재미있게 (또는 더 많은 사람들이 혼란을 느끼고 고통을 느끼게하려면 : P)
*
!src
!assets
!go
!justforfun
!scripts
!package.json
이러한 방식으로 모든 것을 무시하지만 "목록 무시"에서만 복사하거나 추가 할 대상은 제외합니다.
답변이 늦었지만 더 많은 사례를 다루는 더 많은 방법을 추가했습니다.
ADD
, 각 소스 디렉토리에 대한 계층을 만들지 않음)?