En effet ADD go /usr/local/
, ajoutera le contenu du go
dossier 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 WORKDIR
pour /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 go
ceci:
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.
ADD
couche pour chaque répertoire source)?