You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker eclipse-temurin运行Jar报错:/bin/sh: 1: [java,: not found

问题分析与解决思路

错误根源

容器启动报错/bin/sh: 1: [java,: not found,核心问题有两个:

  1. CMD数组参数格式错误:你用的是exec格式的CMD(数组形式),但"/var/feeder/feeder.jar"和"--config-file"之间缺少逗号分隔,导致Docker把整个数组内容当成单个参数传递给shell,触发解析错误。
  2. shell重定向语法不兼容exec模式:&>>是bash的日志重定向语法,而exec模式的CMD会直接执行命令,不经过shell解析,所以该语法无法生效。

修复方案

方案1:改用shell模式CMD(最简单)

将CMD改为字符串形式,让Docker通过shell执行命令,自然支持&>>重定向:

CMD java -jar /var/feeder/feeder.jar --config-file /var/config/application.properties &>> /var/log/feeder/feeder.log

方案2:修复exec模式格式(推荐,信号处理更优)

如果希望保留exec模式(容器接收信号更及时),可以通过调用shell包裹命令,确保数组参数正确分隔:

CMD ["sh", "-c", "java -jar /var/feeder/feeder.jar --config-file /var/config/application.properties &>> /var/log/feeder/feeder.log"]

额外优化建议

合并Dockerfile中的RUN命令,减少镜像分层,提升构建效率:

# 替换原来的4个RUN命令为1个
RUN mkdir -p /var/config /media/data /var/feeder /var/log/feeder

内容的提问来源于stack exchange,提问作者Shimon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:55:12