【问题标题】:Varnish on Docker with Windows使用 Windows 在 Docker 上进行清漆
【发布时间】:2021-02-16 14:18:56
【问题描述】:

大家!

我在 Windows 上使用 Docker,我有一个 Docker 文件来提供“清漆”安装和使用,但是当我运行 docker compose 时,我在清漆容器上收到错误,我不知道我需要什么解决这个问题 - 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

start.sh 我有这段代码

#!/bin/bash

${VARNISH_START}

谁能告诉我我需要做什么来解决这个问题并运行 Varnish 容器?

【问题讨论】:

    标签: bash docker varnish varnish-vcl


    【解决方案1】:

    ^M 是回车符。可以看到报错是找不到/bin/bash^M

    看起来你已经用“记事本”之类的工具编辑了start.sh,它赋予了它windows风格的CRLF行尾(尤其是shebang),而不是linux风格的LF容器正在等待。

    使用“适当的”编程编辑器,例如 Notepad++ 或 VSCode,您可以将行尾更改为仅LF。 linux 系统上的dos2unix 也会这样做。

    如果您在 Windows 上使用 GIT,这可能是罪魁祸首,因为它会混淆行尾,除非您告诉它不要这样做。

    (当你自己被这个咬过几次时,你就会认出^M!)

    【讨论】:

      猜你喜欢
      • 2022-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 2021-08-29
      相关资源
      最近更新 更多