Ich habe http://docs.docker.com/engine/reference/builder/#add gelesen, bin jedoch auf ein Problem gestoßen. Ich möchte das lokale Verzeichnis go
in Docker kopieren/user/local/
Ich habe es versucht:
ADD go /usr/local/
und:
ADD /go/ /usr/local/
ebenfalls:
RUN chmod 0755 /usr/local/go/src/make.bash
Ich sehe jedoch die folgende Fehlermeldung, /usr/local/go/src/make.bash: No such file or directory
aber das lokale go
Verzeichnis enthält make.bash
.
ADD
für jedes Quellverzeichnis eine Ebene zu erstellen )?$HOME
oder~
oder ein beliebiges anderes Shell - Variable wird nicht funktionieren. Ich sage das, weil ich viel ausgegeben habe, um das herauszufinden, als ich zugeben möchte, obwohl es für die meisten offensichtlich ist.COPY
einfach so verhaltencp
? Stattdessen muss es eine zusätzliche Polizei geben, wie es funktioniert.Tatsächlich
ADD go /usr/local/
fügt Inhalt desgo
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:oder
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 ::und ich möchte so hinzufügen
src assets package.json justforfun go
:in Dockerfile:
in der .dockerignore-Datei:
Oder für mehr Spaß (oder wenn Sie mehr Menschen verwirren möchten, lassen Sie sie auch leiden: P) kann sein:
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.
quelle
Sie können COPY verwenden. Sie müssen das Verzeichnis explizit angeben. Es wird nicht von selbst erstellt
Referenz: Docker CP-Referenz
quelle