start - docker-compose.yml example
El archivo Docker-Compose tiene yaml.scanner.ScannerError (7)
archivo compose.yml
, que se ve así:
version: ''2''
services:
discovery-microservice:
build: discovery-microservice
context: /discovery-microservice/target/docker
dockerfile: Dockerfile
ports:
- "8761:8761"
Mientras lo estoy ejecutando me sale el siguiente error:
yaml.scanner.ScannerError: mapping values are not allowed here
in "C:/.../docker-compose.yml", line 5, column 14
Por lo que veo, nada está mal con el formato, por ejemplo, faltan espacios en blanco. Mi objetivo general es especificar un modo de desarrollo de la ventana acoplable-componer archivo, apuntándolo a los directorios de destino de los diferentes módulos.
¿Qué estoy haciendo mal aquí?
Encontré un problema similar hoy, un error de sintaxis en el archivo docker-compose.yml
que causó el mismo error.
version: ''2''
services:
// Add your services here
discovery-microservice:
build: discovery-microservice
context: ./discovery-microservice/target/docker
dockerfile: Dockerfile
ports:
- "8761:8761"
Eliminando esta línea // Add your services here
solucionado mi problema
version: ''2''
services:
discovery-microservice:
build:
context: ./discovery-microservice/target/docker
dockerfile: Dockerfile
ports:
- "8761:8761"
Espero que esto ayude a alguien con un problema similar.
Hola, actualización adicional a la respuesta dada ... No se trata específicamente de la versión: línea ''2.0'' La declaración
ERROR: yaml.scanner.ScannerError: los valores de mapeo no están permitidos aquí
significa que hay un error de formato de algún tipo
Lo obtuve y fue porque me faltaba una pestaña en mi archivo docker-compose
version: ''3.0''
services:
mysql:
image: ...
en lugar de
version: ''3.0''
services:
mysql:
image: ...
Tenga en cuenta la falta de una pestaña de sangría en la línea de la imagen
Literalmente encontré la solución segundos después. Tienes que eliminar el "descubrimiento-microservicio" después de "construir":
version: ''2''
services:
discovery-microservice:
build:
context: ./discovery-microservice/target/docker
dockerfile: Dockerfile
ports:
- "8761:8761"
También puede usar "./" en contexto para rutas relativas. :)
Lo que está mal es que aquí:
build: discovery-microservice
comienzas un mapeo que tiene una build
clave sangrada por cuatro espacios. El valor para esa clave es un escalar que comienza con discovery-microservice
y es posible que continúe en la siguiente línea, dependiendo de si tiene un par key: value
en el mismo nivel de sangría o no.
Lo que no está permitido dentro de un escalar multilínea de este tipo es que usted tiene un sin comillas :
y tiene eso en un nivel de sangría diferente. Que es exactamente lo que tienes.
El analizador que ve el context
sangría en un nivel diferente al de la build
asume que está escribiendo un discovery-microservice context
cadena escalar que no puede ser seguido en la misma línea (como context
) por dos puntos.
Además de eliminar discovery-microservice
después de la compilación, como lo hizo en su respuesta, lo que también haría este YAML válido (pero con un significado diferente, probablemente sin sentido para la composición de la ventana acoplable) son:
services:
discovery-microservice:
build: "discovery-microservice
context: /discovery-microservice/target/docker"
y
services:
discovery-microservice:
build: discovery-microservice
context: /discovery-microservice/target/docker"
Para los archivos de la versión 2 de la ventana acoplable, la clave de build
espera un mapeo (y no un escalar como en las "soluciones" anteriores), por lo que su respuesta es la forma correcta de resolver esto.
Ok, perdí alrededor de 3 horas para depurar un problema similar.
Si ustedes alguna vez reciben el error de abajo
ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
in "./docker-compose.yml", line 2, column 9
Es porque necesitas un espacio necesario entre
versión: ''3'' <- esto es incorrecto
versión: ''3'' <- esto es correcto.
Además, si está utilizando eclipse, hágase un favor e instale YEdit YAML editor plugin
Otro posible culpable puede ser las pestañas extraviadas al final del archivo, que aprendí hoy.
Y me olvidé :
después de la version
version ''2''