簡體   English   中英

Docker 卷必須是一個映射,而不是一個字符串

[英]Docker volume must be a mapping, not a string

我在./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.

誰能告訴我我做錯了什么?

有一些錯字錯誤首先,像serivcesevironment 他們應該拼出servicesenvironment 同樣對於“...不是字符串”錯誤,只需在卷名后附加“:”,如下所示

volumes: db_data:

我剛才遇到了同樣的問題,關鍵是卷名的縮進,即 db_data。

我通過將卷名與上面示例中wordpress服務下的depends_on放在相同的縮進級別來修復它。 (點擊TAB)

volumes:
  mydata:

對比

volumes:
    mydata:

這會解決它,它對我有用

volumes:
  db_data:
    driver: local
version: '3.3'

serivces:
  db:
    image: mysql:5.7
    command: bash -c "mkdir -p /var/lib/mysql/"
    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: {}

save as docker-compose.yml
    cd wordpress
    docker-compose up

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM