Docker卷必须是映射,而不是字符串

时间:2018-04-20 08:53:38

标签: docker docker-compose yaml

我在./wordpress/docker-compose.yaml处有以下文件:

version: '3.3'

serivces:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    evironment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    volumes:
      - ./:/var/www/html
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress

volumes:
  db_data

当我运行cd ./wordpress && docker-compose up -d时,我收到以下错误:

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

谁能告诉我我做错了什么?

3 个答案:

答案 0 :(得分:1)

首先存在某些拼写错误,例如serivcesevironment。他们应拼写servicesenvironment。另外,对于“... not string”错误,只需在您的卷名之后添加“:”,如下所示

volumes: db_data:

答案 1 :(得分:0)

我现在遇到了同样的问题,关键是卷名的缩进,即db_data。

我通过将卷名与上例中 wordpress 服务下的 depends_on 缩进相同的缩进级别来修复它。 (按TAB键)

volumes:
  mydata:

volumes:
    mydata:

答案 2 :(得分:0)

这会解决它并且对我有用

volumes:
  db_data:
    driver: local