Docker for Windows运行容器时ENTRYPOINT指定文件不存在报错(文件实际存在)
Docker容器启动报错:ENTRYPOINT指定脚本不存在(实际文件存在)
以下是几种常见的排查和解决方向:
- 检查脚本行尾格式:Windows系统下的CRLF换行符会被Linux容器识别为脚本路径的一部分,导致"文件不存在"的错误。可以用
dos2unix /bin/start_vsftpd.sh转换为LF格式,或者在克隆代码时执行git config --global core.autocrlf false,避免Git自动转换行尾格式。 - 确认脚本执行权限:如果脚本没有可执行权限,容器启动时也会触发类似报错。在Dockerfile中添加
RUN chmod +x /bin/start_vsftpd.sh指令,确保构建镜像时赋予脚本执行权限。 - 核对镜像内文件路径:检查Dockerfile中的
COPY或ADD指令,确认脚本被正确复制到了/bin目录下。可以通过docker run --rm <镜像名> ls /bin命令查看镜像内该目录的文件列表,验证脚本是否存在。 - 排查tini启动器问题:报错中提到tini,可能是tini与脚本的兼容性问题。尝试修改ENTRYPOINT,直接调用脚本(去掉tini前缀),或者更新镜像中的tini版本。
内容的提问来源于stack exchange,提问作者Mucker
相关产品推荐
相关产品推荐

