web-dev-qa-db-fra.com

Windows docker build warning non-windows docker host

J'essaie de construire une image de menu fixe à partir d'un client de menu fixe (Windows) exécutant cette commande:

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

Le docker Host est également un docker Windows, mais le message d'erreur suivant s'affiche: 

AVERTISSEMENT DE SÉCURITÉ: Vous construisez une image Docker à partir de Windows contre un hôte non-Windows Docker. Tous les fichiers et répertoires ajoutés pour construire le contexte aura les autorisations '-rwxr-xr-x'. Il est recommandé de revérifier et réinitialiser les autorisations pour les fichiers sensibles et des répertoires.

Et puis celui-ci après la première tentative:

caractère non valide '<' recherchant le début de la valeur

Quelqu'un sait pourquoi cela se produit? Je n'avais aucune erreur auparavant, les seules différences sont dans le code source. Pour information j'utilise Jenkins pour construire le projet? Merci.

MISE À JOUR 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

Ceci est corrigé maintenant. Le problème se trouvait dans le pare-feu de la passerelle, il détectait un fichier envoyé dans le contexte de construction en tant que cheval de Troie. Probablement que le fichier Zip de contexte de construction Docker ou utilise des extensions différentes.

1
Guillaume

De thaJeztah sur GitHub :

Cet avertissement a été ajouté car le système de fichiers Windows ne dispose pas d'une option permettant de marquer un fichier comme "exécutable". Construire une image linux à partir d’une machine Windows casserait donc l’image si un fichier devait être marqué comme exécutable.

Pour cette raison, les fichiers sont marqués comme étant exécutables par défaut lors de la compilation à partir d'un client Windows. l'avertissement est là pour que vous en soyez averti et (si nécessaire), modifiez le fichier Docker pour modifier/supprimer le bit exécutable ultérieurement.

1
Francesco Borzi