Docker-撰写和Java

Docker-compose and Java

我对 devops 世界还很陌生,目前正在学习。我正在尝试按照其中一个教程,使用 kafka 和与之交互的特定应用程序启动 docker-compose 文件。它需要使用以下参数启动 java jar:

java -Dcom.sun.management.jmxremote.port=5555 \
   -Dcom.sun.management.jmxremote.authenticate=false \
   -Dcom.sun.management.jmxremote.ssl=false \
   -jar build/libs/kafka-streams-scaling-all.jar

问题是 - 如何 运行 带选项的多行命令?我试过这样:

autoscaling:
  exec:
    command:
    - java
    - |
    -Dcom.sun.management.jmxremote.port=5555 \
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false \
    -jar build/libs/kafka-streams-scaling-all.jar

但是returns in "./docker-compose.yml", line 75, column 9 could not find expected ':' in "./docker-compose.yml", line 76, column 9

网上的一些答案建议使用 > 符号:

autoscaling:
  exec:
    command: >
      java -Dcom.sun.management.jmxremote.port=5555 \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false \
      -jar build/libs/kafka-streams-scaling-all.jar

但是docker似乎不​​理解命令的“-”部分expected <block end>, but found '-' in "./docker-compose.yml", line 74, column 7

使用 docker-compose 文件中的选项处理 运行ning java jar 的最佳方法是什么?

缩进错误

<service_name>:
    command: |
      java \
      -Dcom.sun.management.jmxremote.port=5555 \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false \
      -jar build/libs/kafka-streams-scaling-all.jar