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

Docker容器启动失败:entrypoint.sh未在$PATH中找到的问题求助

解决Docker容器启动时entrypoint.sh找不到的问题

你的问题核心在于容器内根本不存在entrypoint.sh文件,就算文件存在,直接用相对路径调用也可能因为不在用户$PATH中导致找不到。结合你的目录结构和Dockerfile,我来一步步帮你修复:

问题根源

你本地根目录确实有entrypoint.sh,但在Dockerfile里,你只复制了srcs/和scripts/下的文件到容器的/hermes-app/,完全没把根目录的entrypoint.sh复制进去。另外,就算后续补上复制操作,直接写entrypoint.sh的话,系统会去$PATH定义的目录里查找,而/hermes-app可能不在moderator用户的$PATH配置中,同样会触发找不到的错误。

具体修复步骤

1. 把本地的entrypoint.sh复制到容器中

在Dockerfile里找到复制srcs/的代码块,之后新增复制entrypoint.sh的命令:

COPY srcs/ /hermes-app/
COPY entrypoint.sh /hermes-app/  # 新增:把本地根目录的entrypoint.sh复制到容器工作区
COPY scripts/rvm.sh /hermes-app/rvm.sh
COPY scripts/gems.sh /hermes-app/gems.sh

2. 给容器内的entrypoint.sh添加可执行权限

和你处理rvm.sh、gems.sh的逻辑一致,给entrypoint.sh加上执行权限:

RUN chmod +x /hermes-app/rvm.sh
RUN chmod +x /hermes-app/gems.sh
RUN chmod +x /hermes-app/entrypoint.sh  # 新增:赋予脚本执行权限

3. 修改ENTRYPOINT使用绝对路径调用

因为你切换到了moderator用户,/hermes-app大概率不在其默认$PATH里,直接用绝对路径调用脚本更稳妥:

ENTRYPOINT [ "/hermes-app/entrypoint.sh" ]

或者你也可以利用已经设置的WORKDIR /hermes-app,用相对路径:

ENTRYPOINT [ "./entrypoint.sh" ]

额外检查:确保entrypoint.sh有正确的shebang

打开你本地的entrypoint.sh,第一行必须声明脚本解释器,比如:

#!/bin/bash

如果用sh环境的话也可以写成:

#!/bin/sh

没有这一行的话,就算有执行权限,容器也不知道该用什么程序来运行这个脚本。

修改后的关键Dockerfile片段

...
# 在容器中创建工作区
RUN mkdir -p /hermes-app && \
 chmod -R 777 /hermes-app
COPY srcs/ /hermes-app/
COPY entrypoint.sh /hermes-app/  # 新增复制命令
COPY scripts/rvm.sh /hermes-app/rvm.sh
COPY scripts/gems.sh /hermes-app/gems.sh
RUN chmod +x /hermes-app/rvm.sh
RUN chmod +x /hermes-app/gems.sh
RUN chmod +x /hermes-app/entrypoint.sh  # 新增赋予执行权限
...
WORKDIR /hermes-app
RUN useradd -m -s /bin/bash moderator
USER moderator
RUN echo "source /usr/local/rvm/scripts/rvm" >> ~/.bashrc
ENTRYPOINT [ "/hermes-app/entrypoint.sh" ]  # 修改为绝对路径调用

做完这些修改后,重新构建镜像并启动容器,应该就能正常找到并执行entrypoint.sh了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 17:42:31