容器启动失败时运行execlineb。适用于windosw的Docker

问题描述 投票:0回答:1

我试图在启动后在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时出了点问题。

我正在将docker用于Windows10下的Windows,但是,如果有人尝试在ubuntu(或任何其他linux)中构建此容器,一切都可以。

有人可以帮助解决此类问题吗?

DockerImage:简单的alpine

docker alpine execline s6
1个回答
0
投票

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

选项1 dostounix:

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

    RUN apk --no-cache add \dos2unix \

  2. 再次运行您的sh脚本。

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

  3. 享受您的脚本。

选项2 VsCode(或任何textEditor):

  1. CRLF'行尾序列'更改为LFVS Code bottom panelLine endings options
  2. 享受您的脚本。
© www.soinside.com 2019 - 2024. All rights reserved.