问题描述
我对 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
但它返回 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 文件中的选项运行 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