docker-compose up因错误服务'version'失败而必须是映射而不是字符串

时间:2020-06-08 19:42:40

标签: docker docker-compose

当我运行docker-compose up时,出现以下错误。

ERROR: In file '.\docker-compose.yml', service 'version' must be a mapping not a string.

这是我的docker-compose.yml文件。

version: "3.0"
services:
  sql:
    image: mcr.microsoft.com/mssql/server:2017-latest-ubuntu
    ports:
      - "5555:1433"
    environment:
      ACCEPT_EULA: "Y"
      MSSQL_PID: "Express"
      SA_PASSWORD: "P@22w0rd"

我使用了下面的文档,不确定我在哪里做错了。 https://docs.docker.com/compose/compose-file/#image

这是我的docker引擎客户端/服务器版本:

Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b
 Built:             Wed Mar 11 01:23:10 2020
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b
  Built:            Wed Mar 11 01:29:16 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

docker compose版本

docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.4
OpenSSL version: OpenSSL 1.1.1c  28 May 2019

操作系统:Windows 10

2 个答案:

答案 0 :(得分:0)

如果要使用version: "3.8"。确保您have docker version > 19.03.0+。或者,您也可以使用version: "3.7"尝试相同的文件,它应该可以解决您的问题

答案 1 :(得分:0)

看起来这是某种编码问题。在这里https://github.com/docker/compose/issues/5827

使用Visual Studio并将粘贴的docker-compose.yml内容复制到新文件中。我最初在创建文件时使用Ryder。不确定为什么会导致此问题。