Docker compose 我有一个docker撰写文件,当我运行时,我看到下面的错误,有人可以帮助它吗
当我试图构建时,看到下面的错误。也尝试更改多个版本,但没有用Docker compose 我有一个docker撰写文件,当我运行时,我看到下面的错误,有人可以帮助它吗,docker-compose,Docker Compose,当我试图构建时,看到下面的错误。也尝试更改多个版本,但没有用 docker-compose up --build 错误:合成文件“./docker Compose.yml”无效,因为: 无效的顶级属性“worker”。此组合文件的有效顶级部分包括:版本、服务、网络、卷、机密、配置和以“x-”开头的扩展名 您可能会看到此错误,因为您使用了错误的撰写文件版本。指定受支持的版本(例如“2.2”或“3.3”)并将服务定义放在services键下,或者省略version键并将服务定义放在文件的根目录下以
docker-compose up --build
错误:合成文件“./docker Compose.yml”无效,因为:
无效的顶级属性“worker”。此组合文件的有效顶级部分包括:版本、服务、网络、卷、机密、配置和以“x-”开头的扩展名
您可能会看到此错误,因为您使用了错误的撰写文件版本。指定受支持的版本(例如“2.2”或“3.3”)并将服务定义放在services
键下,或者省略version
键并将服务定义放在文件的根目录下以使用版本1。
有关撰写文件格式版本的详细信息,请参见
下面是我的撰写文件
version: '3'
services:
postgres:
image: 'postgres:latest'
redis:
image: 'redis:latest'
nginx:
restart: always
build:
dockerfile: Dockerfile.dev
context: ./nginx
ports:
- '3050:80'
api:
build:
dockerfile: Dockerfile.dev
context: ./server
volumes:
- /app/node_modules
- ./server:/app
environment:
- REDIS_HOST=redis
- REDIS_PORT=6379
- PGUSER=postgres
- PGHOST=postgres
- PGDATABASE=postgres
- PGPASSWORD=postgres_password
- PGPORT=5432
client:
build:
dockerfile: Dockerfile.dev
context: ./client
volumes:
- /app/node_modules
- ./client:/app
worker:
build:
dockerfile: Dockerfile.dev
context: ./worker
volumes:
- /app/node_modules
- ./worker:/app
docker compose文件存在缩进问题。'“工人”和“客户”是服务,因此必须作为儿童接受“服务”。下面的方法应该有效
version: '3'
services:
postgres:
image: 'postgres:latest'
redis:
image: 'redis:latest'
nginx:
restart: always
build:
dockerfile: Dockerfile.dev
context: ./nginx
ports:
- '3050:80'
api:
build:
dockerfile: Dockerfile.dev
context: ./server
volumes:
- /app/node_modules
- ./server:/app
environment:
- REDIS_HOST=redis
- REDIS_PORT=6379
- PGUSER=postgres
- PGHOST=postgres
- PGDATABASE=postgres
- PGPASSWORD=postgres_password
- PGPORT=5432
client:
build:
dockerfile: Dockerfile.dev
context: ./client
volumes:
- /app/node_modules
- ./client:/app
worker:
build:
dockerfile: Dockerfile.dev
context: ./worker
volumes:
- /app/node_modules
- ./worker:/app
YAML文件无效。请检查
客户机:
和下面的缩进(在客户机:
和下面的每一行上多放两个空格)。添加了我用yaml lint检查后您可以检查它是否完美,但它对docker来说并不完美。见我上面的评论。客户:
和工人:
必须接受服务(不在同一级别)。谢谢,工作正常,尽管我已经交叉验证了缩进。无论如何,谢谢什么错误?此外,如果解决方案适合您,您可能希望接受该解决方案作为答案。