Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

yaml.parser.ParserError: while parsing a block mapping

ERROR: yaml.parser.ParserError: while parsing a block mapping
  in "././tmp/statelesscs_compose.yml", line 1, column 1
expected <block end>, but found ':'
  in "././tmp/statelesscs_compose.yml", line 4, column 1
docbase installation completed

while executing the below yml file.can you please suggest me how to resolve this.

Example usage:

docker-compose -f my.yml up

also let me know is there any tool for formatting yml file so that i can easily modify

my.yml:

version: '2'
services:
  ubuntupgcsstateless:
    image: ubuntupgstatelesscsimage
    environment:
      - EXTERNAL_IP=10.31.86.164
      - EXTERNALDB_IP=10.31.86.165
      - EXTERNALDB_ADMIN_USER=postgres
      - EXTERNALDB_ADMIN_PASSWORD=password
      - DOCBASENAME=DocbaseName
    hostname:
      "ubuntupgcsstateless"
    container_name:
      "ubuntupgcsstateless"
    ports:
     - "1689:1689"
     - "1690:1690"
     - "50000:50000"
     - "50001:50001"
     - "9080:9080"
     - "9082:9082"
    volumes:
     - DocbaseName_data:/home/dmadmin/dctm/data
     - DocbaseName_dba:/home/dmadmin/dctm/dba
     - DocbaseName_share:/home/dmadmin/dctm/share
     - DocbaseName_dfc:/home/dmadmin/dctm/config
     - DocbaseName_xhive_storage:/home/dmadmin/dctm/xhive_storage
     - DocbaseName_mdserver:/home/dmadmin/dctm/wildfly9.0.1/server/DctmServer_MethodServer
    privileged: true
volumes:
 DocbaseName_data:
 DocbaseName_dba:
 DocbaseName_share:
 DocbaseName_dfc:
 DocbaseName_xhive_storage:
 DocbaseName_mdserver:
like image 445
anil Avatar asked Jul 08 '16 17:07

anil


2 Answers

The YAML you provided does not generate an error if the spaces there are indeed spaces. So check your YAML for Tab or other hidden characters.

import ruamel.yaml

yaml_str = """\
version: '2'
services:
  ubuntupgcsstateless:
    image: ubuntupgstatelesscsimage
    environment:
      - EXTERNAL_IP=10.31.86.164
      - EXTERNALDB_IP=10.31.86.165
      - EXTERNALDB_ADMIN_USER=postgres
      - EXTERNALDB_ADMIN_PASSWORD=password
      - DOCBASENAME=DocbaseName
    hostname:
      "ubuntupgcsstateless"
    container_name:
      "ubuntupgcsstateless"
    ports:
     - "1689:1689"
     - "1690:1690"
     - "50000:50000"
     - "50001:50001"
     - "9080:9080"
     - "9082:9082"
    volumes:
     - DocbaseName_data:/home/dmadmin/dctm/data
     - DocbaseName_dba:/home/dmadmin/dctm/dba
     - DocbaseName_share:/home/dmadmin/dctm/share
     - DocbaseName_dfc:/home/dmadmin/dctm/config
     - DocbaseName_xhive_storage:/home/dmadmin/dctm/xhive_storage
     - DocbaseName_mdserver:/home/dmadmin/dctm/wildfly9.0.1/server/DctmServer_MethodServer
    privileged: true
volumes:
 DocbaseName_data:
 DocbaseName_dba:
 DocbaseName_share:
 DocbaseName_dfc:
 DocbaseName_xhive_storage:
 DocbaseName_mdserver:
"""

data = ruamel.yaml.round_trip_load(yaml_str)
print(ruamel.yaml.round_trip_dump(data))

Although not required by the YAML specification, you should consistently indent with the same number of spaces for keys in a mapping (you use 1 and 2 spaces, I recommend two) as well as elements in a sequence (again you use 1 and 2 spaces, I recommend using 0 for sequences that are mapping values).

Try the following with your Dockerfile and docker-compose:

version: '2'
services:
  ubuntupgcsstateless:
    image: ubuntupgstatelesscsimage
    environment:
    - EXTERNAL_IP=10.31.86.164
    - EXTERNALDB_IP=10.31.86.165
    - EXTERNALDB_ADMIN_USER=postgres
    - EXTERNALDB_ADMIN_PASSWORD=password
    - DOCBASENAME=DocbaseName
    hostname:
      "ubuntupgcsstateless"
    container_name:
      "ubuntupgcsstateless"
    ports:
    - "1689:1689"
    - "1690:1690"
    - "50000:50000"
    - "50001:50001"
    - "9080:9080"
    - "9082:9082"
    volumes:
    - DocbaseName_data:/home/dmadmin/dctm/data
    - DocbaseName_dba:/home/dmadmin/dctm/dba
    - DocbaseName_share:/home/dmadmin/dctm/share
    - DocbaseName_dfc:/home/dmadmin/dctm/config
    - DocbaseName_xhive_storage:/home/dmadmin/dctm/xhive_storage
    - DocbaseName_mdserver:/home/dmadmin/dctm/wildfly9.0.1/server/DctmServer_MethodServer
    privileged: true
volumes:
  DocbaseName_data:
  DocbaseName_dba:
  DocbaseName_share:
  DocbaseName_dfc:
  DocbaseName_xhive_storage:
  DocbaseName_mdserver:
like image 57
Anthon Avatar answered Nov 01 '22 17:11

Anthon


Method 1:

  • you should open your docker-compose.yml file in notepad++ and enable the "show all characters" option so that you can see and rectify the spaces,tabs indentation problem

but if it will be little tough job for you

Method 2:

  • use online YAML Validator tool like https://codebeautify.org/yaml-validator

aftet this validate tool i can able to find the issue in my "docker-compose.yml" file i have some spaces,tabs indentation issue

like image 13
Hassan Saeed Avatar answered Nov 01 '22 17:11

Hassan Saeed