错误:撰写文件“./docker-compose.yml”无效,因为:services.jenkins.volumes 包含无效类型,它应该是一个数组

时间:2021-03-30 15:40:24

标签: docker docker-compose

docker-compose 文件是这样的:

version: '3'
services:
  jenkins:
    container_name: jenkins
    image: jenkins/jenkins
    ports:
      - "8080:8080"
    volumes:
      -$PWD/jenkins_home: /var/jenkins_home
    networks:
      - net
networks:
  net:

docker 版本信息:

Client: Docker Engine - Community
Version:           20.10.5
API version:       1.41
Go version:        go1.13.15
Git commit:        55c4c88
Built:             Tue Mar  2 20:33:55 2021
OS/Arch:           linux/amd64
Context:           default
Experimental:      true

Server: Docker Engine - Community
Engine:
 Version:          20.10.5
 API version:      1.41 (minimum version 1.12)
 Go version:       go1.13.15
 Git commit:       363e9a8
 Built:            Tue Mar  2 20:32:17 2021
 OS/Arch:          linux/amd64
 Experimental:     false
 containerd:
 Version:          1.4.4
 GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc:
 Version:          1.0.0-rc93
 GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
 Version:          0.19.0
 GitCommit:        de40ad0

错误是:

The Compose file './docker-compose.yml' is invalid because: services.jenkins.volumes contains an invalid type, it should be an array

2 个答案:

答案 0 :(得分:1)

- 和值之间应该有一个空格,并且值应该是一个字符串。请参阅docker compose volumes documentation

version: '3'
services:
  jenkins:
    container_name: jenkins
    image: jenkins/jenkins
    ports:
      - "8080:8080"
    volumes:
      - "${PWD}/jenkins_home:/var/jenkins_home"
    networks:
      - net
networks:
  net:

答案 1 :(得分:1)

您应该在 space 文件中的 - 之后添加一个 docker-compose。我还建议在 relative 中使用 PWD 路径而不是使用 docker-compose 变量,因此 volumes 部分中的文件将是这样的:

volumes:
    - /path/to/jenkins_home:/var/jenkins_home

或者:

volumes:
    - jenkins_home:/var/jenkins_home

还要记住不要在:

前后添加空格