Error: Additional property db-migrator is not allowed

Error: Additional property db-migrator is not allowed

当我运行docker stack deploy -c docker-stack.yml myapp,

我收到错误消息:

db-migrator Additional property db-migrator is not allowed

docker-stack.yml:

version: "3"

services:
  web:
    image: tenzan/myapp_web:prod
    ports:
      - "80:3000"
    env_file:
      - .env/production/database
      - .env/production/web

  redis:
    image: redis

  database:
    image: postgres
    env_file:
      - .env/production/database
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

db-migrator:
  image: tenzan/myapp_web:prod
  command: ["./wait-for", "--timeout=300", "database:5432", "--", "bin/rails", "db:migrate"]
  env_file:
    - .env/production/database 
    - .env/production/web
  deploy:
    restart_policy:
      condition: none

db-migrator 应该在服务中。

您正在使用 YAML 文件,这里的结构很重要。

version: "3"

services:
  web:
    image: tenzan/myapp_web:prod
    ports:
      - "80:3000"
    env_file:
      - .env/production/database
      - .env/production/web

  redis:
    image: redis

  database:
    image: postgres
    env_file:
      - .env/production/database
    volumes:
      - db_data:/var/lib/postgresql/data

  db-migrator:
    image: tenzan/myapp_web:prod
    command: ["./wait-for", "--timeout=300", "database:5432", "--", "bin/rails", "db:migrate"]
    env_file:
      - .env/production/database 
      - .env/production/web
    deploy:
      restart_policy:
        condition: none

volumes:
  db_data: