compose.yml
-Datei, die wie folgt aussieht:
Während ich es ausführe, erhalte ich den folgenden Fehler:
%Vor% Von dem, was ich sehe, ist nichts mit dem Format falsch, z. Leerzeichen fehlen. Mein allgemeines Ziel ist es, eine Docker-Compose-Datei im Entwicklungsmodus anzugeben, die auf die Zielverzeichnisse der verschiedenen Module verweist.
Was mache ich hier falsch?
Buchstäblich Sekunden später die Lösung gefunden. Sie müssen den "discovery-microservice" nach "build" entfernen:
%Vor%Sie können auch "./" im Kontext für relative Pfade verwenden. :)
Ok, ich habe ungefähr drei Stunden verschwendet, um ein ähnliches Problem zu beheben.
Wenn ihr jemals den Fehler
habt %Vor%Es ist, weil Sie brauchen, ein Leerzeichen zwischen
benötigt wirdversion: '3' & lt; - das ist falsch
version: '3' & lt; - das ist richtig.
Wenn Sie Eclipse verwenden, tun Sie sich selbst einen Gefallen und installieren Sie das YEdit YAML-Editor-Plugin
Was ist falsch ist das hier:
%Vor% Sie starten ein Mapping, bei dem der Schlüssel build
um vier Leerzeichen eingerückt ist. Der Wert für diesen Schlüssel ist ein Skalar, der mit discovery-microservice
beginnt und möglicherweise mit der nächsten Zeile fortfährt, abhängig davon, ob das key: value
pair auf der gleichen Einrückungsebene oder nicht
Was in einem solchen mehrzeiligen Skalar nicht erlaubt ist, ist, dass Sie ein nicht aufgelistetes :
und das auf einer anderen Einrückungsstufe haben. Welches ist genau das, was Sie haben.
Der Parser, der context
auf einer anderen Ebene als build
eingerückt sieht, geht davon aus, dass Sie eine skalare Zeichenfolge discovery-microservice context
schreiben, die nicht in derselben Zeile (wie context
) mit einem Doppelpunkt verfolgt werden kann.
Neben dem Entfernen von discovery-microservice
nach dem Build, wie Sie es in Ihrer Antwort getan haben, würde auch dieses gültige YAML (aber mit einer anderen Bedeutung, wahrscheinlich sinnlos für Docker-Compose) lauten:
und
%Vor% Für docker-compose Version 2-Dateien erwartet die build
-Schlüssel ein Mapping (und keinen Skalar wie in den obigen "Lösungen"), was Ihre Antwort zu der richtigen Lösung macht.
Tags und Links docker yaml docker-compose dockerfile