Tatsächlich wird ADD go /usr/local/
den Inhalt des go
Ordners hinzufügen und nicht den Ordner selbst, du kannst Thomasleveils Lösung benutzen oder wenn das aus irgendeinem Grund nicht funktioniert, kannst du WORKDIR
zu /usr/local/
ändern und deinen Ordner so hinzufügen:
WORKDIR /usr/local/
COPY go go/
oder
WORKDIR /usr/local/go
COPY go ./
ABER wenn du mehrere Ordner hinzufügen möchtest, wird es mühsam sein, sie so hinzuzufügen, die einzige Lösung für mein aktuelles Problem ist im Moment COPY . .
zu verwenden und alle unerwünschten Ordner und Dateien in .dockerignore
auszuschließen, sagen wir, ich habe Ordner und Dateien:
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
und ich möchte src assets package.json justforfun go
hinzufügen, also:
im Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
in der .dockerignore Datei:
node_modules
headache.lock
tmp
dist
Auf diese Weise ignorierst du node_modules headache.lock tmp dist
, so dass sie nicht hinzugefügt werden!
Zweiter Ansatz: Oder für mehr Spaß (oder du möchtest mehr Leute verwirren und sie auch leiden lassen :P) kann sein:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
Auf diese Weise ignorierst du alles, außer was du aus der "Ignorier-Liste" kopieren oder hinzufügen möchtest.
Es ist eine späte Antwort, aber weitere Möglichkeiten, das Gleiche zu tun, abzudecken, deckt noch mehr Fälle ab.