gpt4 book ai didi

docker-compose yaml.parser.ParserError

转载 作者:行者123 更新时间:2023-12-02 18:08:34 26 4
gpt4 key购买 nike

对于以下 docker-compose.yml,我总是会遇到无法解释的语法错误(我没有看到两个 docker-compose.yml 之间第 2 行和第 3 行的区别)

---
version: '2'
services:
app-module:
container_name: app-module:
env_file: ./app-module:.env
image: registry.x/app/app-module:latest
network_mode: "bridge"
ports:
- "30303:30303"
volumes:
- type: volume
source: node-volume
target: /datadir
- ./data:/data
- ./log:/log

错误信息:

ERROR: yaml.parser.ParserError: while parsing a block mapping
in "./docker-compose.yml", line 2, column 1
expected <block end>, but found '<block mapping start>'
in "./docker-compose.yml", line 3, column 3

我没有发现与其他工作文件有任何语法差异。

这就是我用作文件灵感的工作 docker-compose.yml:

---
version: '2'
services:
app-node:
container_name: app-node
env_file: ./app-node.env
image: registry.x/group/app-node:latest
network_mode: "bridge"
ports:
- "7990:7990"
- "7999:7999"
volumes:
- ./data:/data
- ./log:/log

证明:

$ docker-compose config
services:
app-node:
container_name: app-node
environment: {}
image: registry.x/group/app-node:latest
network_mode: bridge
ports:
- 7990:7990/tcp
- 7999:7999/tcp
volumes:
- ...app-node/Test/data:/data:rw
- ...app-node/Test/log:/log:rw
version: '2.0'

最佳答案

空格在 YAML 中很重要。 services: 之前有两个空格,它们不应该存在。您告诉 YAML servicesversion 中,但 version 已经有一个值。

区别在于:

foo: bar
in_foo: bar

这将不起作用,因为 in_foofoo 中,并且:

foo: bar
not_in_foo: bar

这会起作用,因为 not_in_bar 不在 foo 中。

或者,这将是有效的语法(但是 docker-compose 将失败,因为它需要 version 中的字符串):

version:
services:
foo: bar

关于docker-compose yaml.parser.ParserError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55148089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com