Infatti ADD go /usr/local/
aggiungerà il contenuto della go
cartella e non la cartella stessa, è possibile utilizzare la soluzione Thomasleveil o se ciò non ha funzionato per qualche motivo è possibile modificareWORKDIR
per /usr/local/
aggiungere la propria directory ad esso come:
WORKDIR /usr/local/
COPY go go/
o
WORKDIR /usr/local/go
COPY go ./
Ma se vuoi aggiungere più cartelle, sarà fastidioso aggiungerle in questo modo, l'unica soluzione per ora come la vedo dal mio problema attuale è usare COPY . .
ed escludere tutte le directory e i file indesiderati .dockerignore
, diciamo che ho cartelle e file :
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
e voglio aggiungere src assets package.json justforfun go
così:
in Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
nel file .dockerignore:
node_modules
headache.lock
tmp
dist
O per divertirti di più (o ti piace confondere più persone anche farle soffrire: P) può essere:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
In questo modo si ignora tutto, ma si esclude ciò che si desidera copiare o aggiungere solo da "ignora elenco".
È una risposta tardiva, ma aggiunge altri modi per fare lo stesso coprendo ancora più casi.
ADD
layer per ciascuna directory di origine)?