Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 用窗户给码头工人上漆_Bash_Docker_Varnish_Varnish Vcl - Fatal编程技术网

Bash 用窗户给码头工人上漆

Bash 用窗户给码头工人上漆,bash,docker,varnish,varnish-vcl,Bash,Docker,Varnish,Varnish Vcl,各位! 我在Windows上使用一个Docker,我有一个Docker文件来提供“varnish”安装和使用,但是当我运行Docker compose时,我在varnish容器上遇到一个错误,我不知道我需要做什么来修复它-varnish容器处于重新启动循环中。这是Varnish的docker文件: FROM 1and1internet/ubuntu-16 RUN apt-get update -y && apt-get install varnish -y RUN apt-g

各位!

我在Windows上使用一个Docker,我有一个Docker文件来提供“varnish”安装和使用,但是当我运行Docker compose时,我在varnish容器上遇到一个错误,我不知道我需要做什么来修复它-varnish容器处于重新启动循环中。这是Varnish的docker文件:

FROM 1and1internet/ubuntu-16

RUN apt-get update -y && apt-get install varnish -y 
RUN apt-get install nano -y

COPY default.vcl /etc/varnish/default.vcl

ENV VARNISH_START /usr/sbin/varnishd -j unix,user=varnish -F -f /etc/varnish/default.vcl -a 0.0.0.0:6081 -s malloc,1g

EXPOSE 6081

ADD start.sh /start.sh
RUN chmod +x /start.sh

CMD ["/start.sh"]
错误是(我从Docker容器日志中获得此信息)

/init/entrypoint: /start.sh: /bin/bash^M: bad interpreter: No such file or directory
#!/bin/bash

${VARNISH_START}
start.sh中,我有以下代码:

/init/entrypoint: /start.sh: /bin/bash^M: bad interpreter: No such file or directory
#!/bin/bash

${VARNISH_START}

有人可以告诉我需要做什么来修复该问题并运行清漆容器?

^M
是回车字符。您可以看到错误在于它找不到
/bin/bash^M

看起来您已经使用“记事本”之类的工具编辑了
start.sh
,该工具为它提供了windows风格的
CRLF
行结尾(尤其是shebang),而不是容器所期望的linux风格的
LF

使用“适当”的编程编辑器,如记事本++或VSCode,您可以将行尾仅更改为
LF
<在linux系统上,code>dos2unix也可以这样做

如果您使用的是GIT for Windows,则很可能是这一问题的罪魁祸首,因为它会弄乱行尾,除非您告诉它不要这样做

(当你自己被咬了几次后,你就能认出
^M