【问题标题】:Running application on Docker Online在 Docker Online 上运行应用程序
【发布时间】:2021-07-01 09:33:51
【问题描述】:

我正在尝试编写我的应用程序。 有人可以帮忙吗? 我收到此错误:

yaml.scanner.ScannerError:此处不允许映射值 “.\docker-compose.yml”,第 4 行,第 21 列

这是我的 docker-compose 文件:

services:
   my-app:
     image: my-app
      container_name: myapp
      environment:
        - SERVER_PORT=8080
        - CONNECTIONSTRING=mysql-db://mysql:3306/messages
   java:
     image: openjdk:latest
     container_name: openjdk

  rabbitmq:
     image: wurstmeister/zookeeper
     environment:

    container_name: rabbitmq
     ports:
      - "5672:5672"

  erlang:
    image: erlang:latest
    container_name: erlang

  mysql-db:
    image: mysql
    container_name: mysql

    environment:
      MYSQL_DATABASE: messages
      MYSQL_USER: root
      MYSQL_PASSWORD: 1234
    ports:
      - "3306:3306"

【问题讨论】:

  • 这能回答你的问题吗? Docker-Compose file has yaml.scanner.ScannerError
  • image:environment:container_name: 都需要处于相同的缩进级别。您的示例的第 4 行比第 3 行缩进一个空格,这会导致此错误。 (您可能只删除container_name: 而不会产生不良影响。)

标签: docker


【解决方案1】:

你的缩进错误,container_name 和 environment 需要和 image 处于同一级别(你有一个额外的空间)

【讨论】:

  • 你确定我和mysql的连接字符串没问题?
  • 我收到此错误“com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure”
  • mysql://mysql-db:3306/messages 你的架构和服务器名称弄错了
  • 完美,谢谢。我如何发送邮递员请求?是不是本地主机?
  • 您需要像为 mysql-db 所做的那样将端口添加到 my-app 部分,但 8080 则改为 localhost
【解决方案2】:

这是缩进

image: my-app
  container_name: myapp
  environment:
     - SERVER_PORT=8080
     - CONNECTIONSTRING=mysql-db://mysql:3306/messages

这样试试

image: my-app
container_name: myapp
environment:
   - SERVER_PORT=8080
   - CONNECTIONSTRING=mysql-db://mysql:3306/messages

缩进在 yaml 中很重要,因此请确保所有内容都正确对齐。

【讨论】:

  • 仅供参考,这不是唯一的格式错误,因此请确保您完整查看文件。 rabbitmq 服务也有不正确的缩进,以及你在 mysql-db 中缺少环境变量的连字符
猜你喜欢
  • 2019-11-21
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
  • 2023-03-16
  • 2023-03-05
相关资源
最近更新 更多