如何修复我的 docker-compose.yml? - 预期 <block end>,但发现 '<block mapping start>'

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

我的 yml 文件中似乎存在缩进问题。我在这里阅读了一些其他问题,并尝试了各种缩进方案。我仍然无法让它工作。在发布此问题之前,我故意删除了环境名称/密码。

 version: '2'
  ghost:
    image: ghost:latest
    container_name: ghost-blog  #Specify a custom container name, rather than a generated default name.
    environment:
      - NODE_ENV=production
      - MYSQL_DATABASE=db-name # Change {{db-name}}
      - MYSQL_USER=user # Change {{username}}
      - MYSQL_PASSWORD=pass # Change {{db-password}}
      # - "MAILGUN_USER={{mailgun-user}}" # Change {{mailgun-user}}
      # - "MAILGUN_PASSWORD={{mailgun-password}}" # Change {{mailgun-password}}
    volumes:
      - ./ghost:/var/lib/ghost # persist the data
    ports:
      - 2368:2368
    depends_on:
      - mysql # ensure that the database will start first
    restart: always

  mysql:
    image: mysql:latest
    container_name: ghost-db
    environment:
      - MYSQL_DATABASE=dbname # Change {{db-name}}
      - MYSQL_ROOT_PASSWORD=db-pass # Change {{root-password}}
      - MYSQL_USER=user # Change {{username}}
      - MYSQL_PASSWORD=sq-pass # Change {{db-password}}
    volumes:
      - ./db:/var/lib/mysql
    restart: always

原文由 JAstuccio 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

将来,您可以使用这个 网站 检查它有什么问题,然后在旅途中修复它。

编辑:

因此,您在使用 docker-compose 文件时遇到的问题如下:

  1. 您没有在版本之后添加 services: 关键字和

  2. 如果您想要最新图像,则不必传递 :latest 标签,当您想要特定版本的图像时,您将传递标签,并且在“”之间完成


至于代码,应该如下:

 version: '2'

services:
      ghost:
        image: ghost
        container_name: ghost-blog
        environment:
          - NODE_ENV=production
          - MYSQL_DATABASE=db-name
          - MYSQL_USER=user
          - MYSQL_PASSWORD=pass
      #   - "MAILGUN_USER={{mailgun-user}}"
      #   - "MAILGUN_PASSWORD={{mailgun-password}}" # Change {{mailgun-password}}
        volumes:
         - ./ghost:/var/lib/ghost # persist the data
        ports:
          - 2368:2368
        depends_on:
          - mysql # ensure that the database will always start first
        restart: always

      mysql:
        image: mysql
        container_name: ghost-db
        environment:
          - MYSQL_DATABASE=dbname # Change {{db-name}}
          - MYSQL_ROOT_PASSWORD=db-pass # Change {{root-password}}
          - MYSQL_USER=user # Change {{username}}
          - MYSQL_PASSWORD=sq-pass # Change {{db-password}}
        volumes:
          - ./db:/var/lib/mysql
        restart: always

原文由 Sergiu 发布,翻译遵循 CC BY-SA 4.0 许可协议

在我的情况下,由于在服务名称(如 mysql)之前缺少空格而导致的错误。希望这些信息可以帮助某人!

原文由 KiwenLau 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进