如何修复docker-compose.yml预期<;块端>;,但是发现'&书信电报;块映射开始>';

如何修复docker-compose.yml预期<;块端>;,但是发现'&书信电报;块映射开始>';,docker,yaml,Docker,Yaml,将来,您可以使用它来检查它的问题,然后在运行中修复它 编辑: 因此,docker compose文件的问题如下: version: '2' ghost: image: ghost:latest container_name: ghost-blog #Specify a custom container name, rather than a generated default name. environment: - NODE_ENV=productio

将来,您可以使用它来检查它的问题,然后在运行中修复它

编辑:

因此,docker compose文件的问题如下:

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
  • 您没有添加服务:在版本和

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


  • 至于守则,则应如下:

    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
    

    在我的例子中,这个错误是由于在服务名(比如mysql)之前缺少空格造成的。希望这些信息能对大家有所帮助

    对我来说,问题是线条的缩进不够。
    我在出现问题的行中添加了一个选项卡,并在该选项卡的下一行添加了进一步的依赖项。

    我认为您缺少服务:像这里这样的标记您发布的代码没有通过您推荐的解析器。`错误:分析“”第3行第2列中的块映射时:应为“^ghost:”,但在“”第21行第3列中找到“”:mysql:“@JAstuccio我已编辑了代码。请看我对你的评论。它通过了语法分析器,但当我复制你的新代码并更改密码时,我仍然会遇到同样的错误。@JAstuccio是的,因为我在本地测试了它,没有出现错误,这是一个额外的空格,对于空格和引号的错误使用也是一样的。您可以在运行容器之前验证上的文件。这就是我做的,在一个大的改变之后。
    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