En effet ADD go /usr/local/, ajoutera le contenu du godossier et non le dossier lui-même, vous pouvez utiliser la solution Thomasleveil ou si cela n'a pas fonctionné pour une raison quelconque, vous pouvez changer WORKDIRpour /usr/local/ensuite y ajouter votre répertoire comme:
WORKDIR /usr/local/
COPY go go/
ou
WORKDIR /usr/local/go
COPY go ./
Mais si vous voulez ajouter plusieurs dossiers, il sera ennuyeux de les ajouter comme ça, la seule solution pour l'instant, comme je le vois dans mon problème actuel, utilise COPY . .et exclut tous les répertoires et fichiers indésirables dans .dockerignore, disons que j'ai des dossiers et des fichiers :
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
et je veux ajouter src assets package.json justforfun goceci:
dans Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
dans le fichier .dockerignore:
node_modules
headache.lock
tmp
dist
Ou pour plus de plaisir (ou si vous aimez confondre plus de gens, faites-les souffrir également: P) peut être:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
De cette façon, vous ignorez tout, mais en excluant ce que vous souhaitez copier ou ajouter uniquement à partir de "ignorer la liste".
C'est une réponse tardive, mais en ajoutant plus de façons de faire de même en couvrant encore plus de cas.
ADDcouche pour chaque répertoire source)?