Tatsächlich ADD go /usr/local/
fügt Inhalt des go
Ordners und nicht der Ordner selbst, können Sie Thomasleveil Lösung verwenden oder wenn das aus irgendeinem Grunde nicht funktioniert können Sie ändern , WORKDIR
um /usr/local/
dann Ihr Verzeichnis wie um es hinzuzufügen:
WORKDIR /usr/local/
COPY go go/
oder
WORKDIR /usr/local/go
COPY go ./
Wenn Sie jedoch mehrere Ordner hinzufügen möchten , ist es ärgerlich, sie so hinzuzufügen. Die einzige Lösung, die ich derzeit in meinem aktuellen Problem sehe, besteht darin COPY . .
, alle unerwünschten Verzeichnisse und Dateien zu verwenden und auszuschließen. Nehmen .dockerignore
wir an, ich habe Ordner und Dateien ::
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
und ich möchte so hinzufügen src assets package.json justforfun go
:
in Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
in der .dockerignore-Datei:
node_modules
headache.lock
tmp
dist
Oder für mehr Spaß (oder wenn Sie mehr Menschen verwirren möchten, lassen Sie sie auch leiden: P) kann sein:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
Auf diese Weise ignorieren Sie alles, schließen jedoch aus, was Sie kopieren oder hinzufügen möchten, nur aus der "Ignorierliste".
Es ist eine späte Antwort, aber es werden noch mehr Möglichkeiten hinzugefügt, um dasselbe zu tun und noch mehr Fälle abzudecken.
ADD
für jedes Quellverzeichnis eine Ebene zu erstellen )?