入口点脚本上的Docker错误:“无此文件或目录”

nik*_*las 2 ubuntu docker

我正在使用Docker映像,ubuntu:trusty并且包含一个entrypoint.sh文件

#!/bin/bash
. /appenv/bin/activate
exec $@
Run Code Online (Sandbox Code Playgroud)

Dockerfile包含用于入口点脚本

ADD scripts/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)

出现错误 exec user process caused "no such file or directory"

Seh*_*ras 24

如果您使用的是 VSCode,请打开entrypoint-dev.sh 文件,然后执行以下操作:

  1. 单击 CRLF,
  2. 从下拉列表中将其更改为 LF
  3. 重建所有图像和容器

在此输入图像描述

  • 我们刚才在这里做了什么?它对我来说就像上帝一样有用! (3认同)

Pen*_*esh 11

对您的文件运行dos2unix命令entrypoint.sh。上述错误是由不正确的行结尾引起的。该命令将 DOS/MAC 格式的纯文本文件转换为 UNIX 格式。

用法示例:

dos2unix entrypoint.sh 
Run Code Online (Sandbox Code Playgroud)

修复出现的任何错误并再次运行构建。点击此链接了解更多信息


小智 7

我在使用适用于 Windows 的 Docker 时遇到了这个问题,解决方案是将入口点脚本文件从 CRLF -> LF 更改。


Grz*_*rek 6

我完全相信这是一种常见情况,其中此错误是由于在入口点脚本中使用错误的行结尾而引起的。

您可以使用dos2unix命令来修复它们,也可以手动执行。

要获得更详细的答案,您需要提供更多的上下文信息。