0

我试图在启动后在 docker 容器中运行简单的脚本。最初,以前的开发人员决定在里面使用 s6。

#!/usr/bin/execlineb -P

foreground { sleep 2 }
nginx

当我尝试开始时,我收到了这条消息

 execlineb: usage: execlineb [ -p | -P | -S nmin | -s nmin ] [ -q | -w | -W ] [ -c commandline ] script args

执行此脚本或 execline 看起来有问题。

我在windows10下使用docker for windows,但是如果其他人试图在ubuntu(或任何其他linux)中构建这个容器,一切都可以。

任何人都可以帮助解决这种问题吗?

DockerImage:简单alpine

4

1 回答 1

0

根据我们对这个“巨大”问题的研究,我们找到了两种解决方法。绝对是特殊符号的问题,例如 '\r'

选项 1 dostounix:

  1. 在您的容器中安装 dostounix(在 docker 文件中)

    运行 apk --no-cache 添加\dos2unix\

  2. 运行它反对你的 sh 脚本。

    为 {PathToYourFiles} 中的文件运行;做\dos2unix $文件;\ chmod a+xwr $文件;\ 完毕

  3. 享受你的剧本。

选项 2 VsCode(或任何文本编辑器):

  1. 将CRLF 'End Of Line Sequence'更改为LF VS Code 底部面板 行结尾选项
  2. 享受你的剧本。
于 2020-03-25T08:21:17.677 回答