ERROR: In file './docker-compose.yml', volume must be a mapping not a string

Richard picture Richard · Dec 26, 2016 · Viewed 57.1k times · Source

Question: Why do I get this error?

ERROR: In file './docker-compose.yml', volume 'mariavolume' must be a mapping not a string.

My docker-compose file is almost identical to this one: https://docs.docker.com/compose/wordpress/

version: '2'
services:
  wordpress:
    image: wordpress:latest
    restart: always
    depends_on:
      - db
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_PASSWORD: example
      WORDPRESS_DB_HOST: 3306
  db:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - maria_volume: /var/lib/mysql
volumes:
  maria_volume: ~/mariadb

Answer

Dhiraj Gupta picture Dhiraj Gupta · Apr 23, 2018

In my case this was happening because I missed adding a : after the volume name.

Instead of:

volumes:
    - mysqldata:

I had typed:

volumes:
    - mysqldata

docker-compose up gave me the same error as above.