【问题标题】:docker-compose - service 'volumes' must be a mapping not an arraydocker-compose - 服务“卷”必须是映射而不是数组
【发布时间】:2020-01-05 18:32:32
【问题描述】:

在您将此问题标记为重复之前,我已经查看了很多线程,但都没有解决问题。

这是我的 docker compose 文件:

version: '3'

services:
  # nginx
  nginx:
    build : ./nginx
    volumes: 
      - ./site:/var/www/html
    ports:
      - '8080:80'
    depends_on:
      php
  # database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: bedrock123
      MYSQL_DATABASE: xyz
      MYSQL_USER: iamuser
      MYSQL_PASSWORD: iampass
    networks:
      - wpsite

  # php
  php:
    image: php:latest
  volumes:
    - ./site:./var/www/html

我知道可能存在压痕错误,并且我确实检查了它们,但这似乎并没有解决问题。

【问题讨论】:

    标签: docker


    【解决方案1】:

    这是一个缩进问题。 php 容器的卷需要缩进。否则,卷将被视为要运行的另一项服务。

      # php
      php:
        image: php:latest
        volumes:
          - ./site:./var/www/html
    

    【讨论】:

    • 它产生了同样的错误。我为所有音量命令更改了它。将我的 vscode 设置为使用空格而不是制表符是否与此有关?
    • @SameerManek 在以空格分隔的文件中混合空格和制表符会破坏事情。 Yaml 文件只能使用空格。 stackoverflow.com/q/19975954/596285
    猜你喜欢
    • 2018-09-30
    • 2020-08-17
    • 2019-03-17
    • 2017-12-17
    • 2016-10-04
    • 2021-09-21
    • 2017-01-26
    • 2017-09-13
    • 2021-08-30
    相关资源
    最近更新 更多