Docker-composition de fichier yaml.scanner.ScannerError
compose.yml
fichier, qui ressemble à ceci:
version: '2'
services:
discovery-microservice:
build: discovery-microservice
context: /discovery-microservice/target/docker
dockerfile: Dockerfile
ports:
- "8761:8761"
Pendant que je suis à l'exécution j'obtiens l'erreur suivante:
yaml.scanner.ScannerError: mapping values are not allowed here
in "C:\...\docker-compose.yml", line 5, column 14
De ce que je vois, rien n'est de mal avec le format, par exemple, les espaces manquants. Dans l'ensemble, mon but est de spécifier un mode de développement docker-composition de fichier, pointant à la cible de répertoires à partir de différents modules.
Ce que je fais mal?
OriginalL'auteur Skeffington | 2016-08-22
Vous devez vous connecter pour publier un commentaire.
Ok, j'ai perdu environ 3 heures à déboguer un problème similaire.
Si vous les gars jamais obtenir l'erreur ci-dessous
Son parce que vous avez besoin d'un espace est nécessaire entre
de la version:'3' <-- c'est faux
de la version: '3' <-- c'est correct.
Aussi, si vous utilisez eclipse, faites-vous une faveur et installer YEdit YAML editor plugin
le plugin certainement enregistre la durée de vie
OriginalL'auteur
Et j'ai oublié
:
aprèsversion
OriginalL'auteur
Littéralement trouvé la solution secondes plus tard. Vous devez supprimer la "découverte-microservice" après "construire":
Vous pouvez aussi utiliser "./" dans le contexte pour les chemins relatifs. 🙂
OriginalL'auteur
Ce qui est mal, c'est que ici:
vous démarrez une cartographie qui a une clé
build
en retrait par quatre espaces. La valeur de cette clé est un scalaire qui commence avecdiscovery-microservice
possible et continue à la ligne suivante, selon qu'qui a unkey: value
paire au même niveau d'indentation ou pasCe qui n'est pas autorisé à l'intérieur d'une multiligne scalaire est que vous avez une non cotées
:
et ont qu'à un autre niveau d'indentation. Ce qui est exactement ce que vous avez.L'analyseur de voir
context
en retrait à un niveau différent debuild
suppose que vous êtes l'écriture d'une chaîne dediscovery-microservice context
qui ne peut être suivi sur la même ligne (commecontext
) par un deux-points.En dehors de la suppression
discovery-microservice
après la construction comme vous l'avez fait dans votre réponse, ce serait aussi valable YAML (mais avec un sens différent, probablement non-sens pour le panneau composition) sont:et
Pour docker-composition de la version 2 fichiers, le
build
clé s'attend à une cartographie (et pas un scalaire comme dans les "solutions" ci-dessus), ce qui rend votre réponse la bonne façon de résoudre ce problème.OriginalL'auteur
J'ai rencontré un problème similaire aujourd'hui, une erreur de syntaxe dans le
docker-compose.yml
fichier qui a provoqué le même message d'erreur.Suppression de cette ligne
//Add your services here
fixé mon problèmeJ'espère que cela aide quelqu'un avec un problème similaire.
//
de la fin de la ligne de commentaires que quoi que ce soit avec un de quatre lettres de l'acronyme disposera de. YAML les commentaires commencent par un#
précédé d'une espace (qui comprend un saut de ligne).OriginalL'auteur
Bonjour nouvelle mise à jour de la réponse qui est donnée .... Ce n'est pas précisément à propos de la version: '2.0' ligne
La déclaration
signifie qu'il y a une erreur de mise en forme d'une certaine sorte.
Je l'ai eu et c'est parce que j'ai été absent un onglet dans mon menu fixe-composition de fichier
au lieu de
Note l'absence d'une mise en retrait de l'onglet sur la ligne de l'image
OriginalL'auteur
Un autre coupable possible peut être errant onglets à la fin du fichier, j'ai appris aujourd'hui.
OriginalL'auteur