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

为何Docker Compose无法找到入口点,但docker run可正常运行镜像?

问题原因与解决方法

核心问题:容器内的/app目录被本地挂载覆盖

查看你的docker-compose.yml中ebcmos服务的volumes配置:

volumes:
  - ./capture/ebcmos:/app/capture:wo
  - ./logs/ebcmos:/app/
  - /dev/ttyUSB0:/dev/ttyUSB0
  - ./xmp/ebcmos:/app/xmp/ebcmos

其中- ./logs/ebcmos:/app/这一行会将本地的./logs/ebcmos目录直接挂载到容器的/app根目录下,这会完全覆盖容器镜像中原有的/app目录内容——包括你从builder阶段复制过来的Nssams可执行文件。

而你使用docker run命令时,没有挂载/app目录,因此能直接访问镜像内置的Nssams文件并正常执行。

解决方案:调整挂载路径,避免覆盖/app根目录

修改volumes配置,将本地日志目录挂载到/app下的子目录(比如/app/logs),而非/app本身:

volumes:
  - ./capture/ebcmos:/app/capture:wo
  - ./logs/ebcmos:/app/logs  # 调整挂载路径至子目录
  - /dev/ttyUSB0:/dev/ttyUSB0
  - ./xmp/ebcmos:/app/xmp/ebcmos

同时需要确保你的应用程序日志输出路径对应为/app/logs,如果业务逻辑要求必须使用原日志路径,可在Dockerfile的prod阶段提前创建/app/logs目录,再挂载到该子目录,避免覆盖整个/app目录。

验证方法

修改配置后重新执行docker compose up,此时容器内的/app目录不会被覆盖,Nssams文件会保留,服务即可正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:25:25