错误:撰写文件 '.\docker-compose.yml' 无效,因为:services.drupal 的配置选项不受支持:'postgres'

时间:2021-05-14 17:05:11

标签: postgresql docker docker-compose drupal

这是我的docker-compose.yml

version: "3"

services:
    drupal:
        image: drupal
        ports:
        - "8080:80"
        volumes:
        - drupal-modules:/var/www/html/modules
        - drupal-profiles:/var/www/html/profiles
        - drupal-sites:/var/www/html/sites
        - drupal-themes:/var/www/html/themes
        postgres:
            image: postgres
            environment:
                - POSTGRES_PASSWORD=mypasswd

volumes:
    drupal-modules:
    drupal-profiles:
    drupal-sites:
    drupal-themes:

当我跑步时

$ docker-compose up

我明白了:

ERROR: The Compose file '.\docker-compose.yml' is invalid because:
Unsupported config option for services.drupal: 'postgres'

有什么问题吗?

2 个答案:

答案 0 :(得分:1)

每次看到

ERROR: The Compose file '.\docker-compose.yml' is invalid because:
Unsupported config option for

问题很可能出在缩进错误上,就像这种情况。

首先,postgresdrupal都是容器(所以services),所以它们必须有相同的缩进级别,即比{{1}少一个缩进级别}.
将整个 services 结构/树的缩进级别减少一级。

其次,每个以 postgres 开头的元素都必须比它所属的元素多一个缩进级别。
因此,为 -ports 的元素再添加一个缩进级别。

这里是更正的 docker-compose.yml:

volumes

答案 1 :(得分:0)

您的 docker-compose.yml 中的缩进不正确,因为 .yml 文件对缩进敏感。

您有三个错误:

  1. ports 是一个 key:value 数据,所以 - 应该在下一行缩进。
  2. volumes 是一个 key:value 数据,所以 - 应该在下一行缩进。
  3. postgres 服务的缩进应与 drupal 处于同一级别。

所以你的文件应该像这样工作:

version: "3"

services:
    drupal:
        image: drupal
        ports:
            - "8080:80"
        volumes:
            - drupal-modules:/var/www/html/modules
            - drupal-profiles:/var/www/html/profiles
            - drupal-sites:/var/www/html/sites
            - drupal-themes:/var/www/html/themes
    postgres:
        image: postgres
        environment:
            - POSTGRES_PASSWORD=mypasswd

volumes:
    drupal-modules:
    drupal-profiles:
    drupal-sites:
    drupal-themes: