.net 预期';映射开始';,得到';SequenceStart';

.net 预期';映射开始';,得到';SequenceStart';,.net,docker,.net,Docker,我正试着从Docker开始,我似乎每一步都有问题。看到很多模糊的错误。我已经创建了一个ASP.NET核心应用程序,并启用了Docker支持,正如预期的那样 我现在正在尝试创建SQL数据库服务,因此我对compose文件进行了如下编辑: version: '3.4' services: sql.data: sql.data: image: microsoft/mssql-server-linux environment: - MSSQL_SA_PASSWO

我正试着从Docker开始,我似乎每一步都有问题。看到很多模糊的错误。我已经创建了一个ASP.NET核心应用程序,并启用了Docker支持,正如预期的那样

我现在正在尝试创建SQL数据库服务,因此我对compose文件进行了如下编辑:

version: '3.4'

services:
  sql.data:
    sql.data:
    image: microsoft/mssql-server-linux
    environment:
      - MSSQL_SA_PASSWORD=Pass@word
      - ACCEPT_EULA=Y
      - MSSQL_PID=Developer
    ports:
      - "5434:1433"
  webapplication2:
    image: ${DOCKER_REGISTRY}webapplication2
    build:
      context: .
      dockerfile: WebApplication2/Dockerfile
如下所述:

以下是输出:

error : (Line: 7, Col: 7, Idx: 107) - (Line: 7, Col: 7, Idx: 107): Expected 'MappingStart', got 'SequenceStart' (at Line: 7, Col: 7, Idx: 107).
1>Done building project "docker-compose.dcproj" -- FAILED.
有什么问题?到目前为止,我在这里查看:-删除破折号似乎没有帮助


YAML似乎在此处解析:。如果我删除了SQL.Data服务,那么它将按预期工作。

您的YAML(如所示)是有效的YAML,错误消息来自YAML解析器(即DockerCompose对数据的解释级别不一致。因此,该错误可能在原始文件的正常视图中隐藏,因为输入中有制表符(不应该有),或者因为您有不正确/混合的行尾(CR+LF而不是LF)

我猜其中一个序列元素(以破折号开头的元素)有一个制表符(+空格),而不是6个空格。

这似乎是一个。您可以使用另一种表示法:

version: '3.4'

services:
  sql.data:
    sql.data:
    image: microsoft/mssql-server-linux
    environment:
      MSSQL_SA_PASSWORD : Pass@word
      ACCEPT_EULA : Y
      MSSQL_PID : Developer
    ports:
      - "5434:1433"
  webapplication2:
    image: ${DOCKER_REGISTRY}webapplication2
    build:
      context: .
      dockerfile: WebApplication2/Dockerfile
请注意,冒号(:)的两侧必须有一个空格