web-dev-qa-db-de.com

Windows Docker-Build-Warnung für Nicht-Windows-Docker-Host

Ich versuche, ein Docker-Image von einem Docker-Client (Windows) zu erstellen, der diesen Befehl ausführt:

docker --Host a.b.c.d build --no-cache=true --build-arg CONFIGURATION=live -t imagename .

Der Docker-Host ist auch ein Windows-Docker, aber ich erhalte folgende Fehlermeldung: 

SICHERHEITSHINWEIS: Sie erstellen ein Docker-Image von Windows gegen ein Nicht-Windows-Docker-Host. Alle Dateien und Verzeichnisse, die zum Erstellen von .__ hinzugefügt wurden. Kontext wird die Berechtigung '-rwxr-xr-x' haben. Es wird empfohlen, Überprüfen Sie die Berechtigungen für vertrauliche Dateien und .__ erneut. Verzeichnisse.

Und dann nach dem ersten Versuch:

ungültiges Zeichen '<' sucht nach Wertanfang

Weiß jemand, warum das passiert? Ich hatte vorher keinen Fehler, die einzigen Unterschiede liegen in der Codequelle. Zur Information verwende ich Jenkins, um das Projekt zu erstellen. Vielen Dank.

UPDATE 1 - Dockerfile

FROM Microsoft/windowsservercore
Shell ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]

ARG CONFIGURATION
EXPOSE 80
ADD src/MyFolder/bin/$CONFIGURATION/ /ContainerFolder
CMD /ContainerFolder/MyApp.exe
9
Guillaume

Dies ist jetzt behoben. Das Problem lag in der Gateway-Firewall. Es wurde eine im Build-Kontext als Trojaner gesendete Datei erkannt. Möglicherweise erstellt Docker eine Kontext-ZIP-Datei oder verwendet verschiedene Erweiterungen.

1
Guillaume

Von thaJeztah auf GitHub :

Diese Warnung wurde hinzugefügt, da das Windows-Dateisystem keine Option zum Markieren einer Datei als "ausführbar" hat. Das Erstellen eines Linux-Images von einem Windows-Computer aus würde das Image daher beschädigen, wenn eine Datei als ausführbar markiert werden muss.

Aus diesem Grund werden Dateien beim Erstellen von einem Windows-Client standardmäßig als ausführbar markiert. Die Warnung ist vorhanden, damit Sie darüber informiert werden und (falls erforderlich) die Docker-Datei ändern, um das ausführbare Bit anschließend zu ändern bzw. zu entfernen.

1
Francesco Borzi