Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker compose 我有一个docker撰写文件,当我运行时,我看到下面的错误,有人可以帮助它吗_Docker Compose - Fatal编程技术网

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来说并不完美。见我上面的评论。
客户:
工人:
必须接受服务(不在同一级别)。谢谢,工作正常,尽管我已经交叉验证了缩进。无论如何,谢谢什么错误?此外,如果解决方案适合您,您可能希望接受该解决方案作为答案。