首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker卷必须是映射,而不是字符串

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

Stack Overflow用户
提问于 2018-04-20 16:53:38
回答 4查看 14.1K关注 0票数 6

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

代码语言:javascript
运行
复制
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时,我得到以下错误:

代码语言:javascript
运行
复制
ERROR: In file './docker-compose.yaml', volume must be a mapping, not a string.

有人能告诉我我哪里做错了吗?

EN

回答 4

Stack Overflow用户

发布于 2018-04-20 17:50:18

首先是某些打字错误,比如serivcesevironment。他们应该拼写servicesenvironment。另外,对于"... not string“错误,只需在卷名后面附加":”,如下所示

volumes: db_data:

票数 6
EN

Stack Overflow用户

发布于 2020-07-14 21:17:59

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

我修复了它,将卷名放在与上面例子中wordpress服务下的depends_on相同的缩进级别上。(按TAB键)

代码语言:javascript
运行
复制
volumes:
  mydata:

vs

代码语言:javascript
运行
复制
volumes:
    mydata:
票数 1
EN

Stack Overflow用户

发布于 2021-03-17 20:21:29

这会解决它的,它对我来说很有效

代码语言:javascript
运行
复制
volumes:
  db_data:
    driver: local
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49937772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档