【发布时间】:2021-04-07 00:44:24
【问题描述】:
要执行 sbt 来执行我使用的特定 Main 方法:
sbt "run-main tickdata.Main"
命令sbt "run-main tickdata.Main"在docker中应该如何使用。
我已经尝试添加到Dockerfile:
CMD ["sbt" , "\"run-main tickdata.Main\""]
但收到错误:
[error] Expected letter
[error] Expected symbol
[error] Expected '!'
[error] Expected '+'
[error] Expected '++'
[error] Expected '^'
[error] Expected '^^'
[error] Expected 'debug'
[error] Expected 'info'
[error] Expected 'warn'
[error] Expected 'error'
[error] Expected ';'
[error] Expected end of input.
[error] Expected 'early('
[error] Expected '-'
[error] Expected '--'
[error] Expected 'show'
[error] Expected 'all'
[error] Expected '*'
[error] Expected '{'
[error] Expected project ID
[error] Expected configuration
[error] Expected key
[error] "run-main tickdata.Main"
[error] ^
【问题讨论】:
-
如果您只使用
CMD ["sbt" , "run-main tickdata.Main"]会发生什么? - 另外,请注意,在 docker 图像中包含整个 sbt 项目的情况并不常见。您通常使用较小的普通 java 应用程序 (只是 JRE) 创建一个 docker 映像。更快更简单。如果项目不太复杂,您可以使用 sbt-assembly 生成单个 jar 并在 CMD 上执行java -jar jar,或者您可以查看 sbt-native-packager 创建更强大的 docker 映像。