Na verdade, ADD go /usr/local/
você adicionará o conteúdo da go
pasta e não a própria pasta, você pode usar a solução Thomasleveil ou, se por algum motivo não funcionar, pode alterar WORKDIR
para /usr/local/
adicionar o diretório a ele como:
WORKDIR /usr/local/
COPY go go/
ou
WORKDIR /usr/local/go
COPY go ./
Mas se você quiser adicionar várias pastas, será irritante adicioná-las dessa maneira, a única solução por enquanto, no meu caso atual, é usar COPY . .
e excluir todos os diretórios e arquivos indesejados .dockerignore
, digamos que tenho pastas e arquivos :
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
e eu quero adicionar src assets package.json justforfun go
assim:
no Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
no arquivo .dockerignore:
node_modules
headache.lock
tmp
dist
Ou para mais diversão (ou você gosta de confundir, mais pessoas as fazem sofrer também: P) pode ser:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
Dessa forma, você ignora tudo, mas exclui o que deseja que seja copiado ou adicionado apenas da "lista de ignorados".
É uma resposta tardia, mas adicionamos mais maneiras de fazer o mesmo, cobrindo ainda mais casos.
ADD
camada para cada diretório de origem)?