zoukankan      html  css  js  c++  java
  • Dockerfile执行shell脚本报错No such file or directory(又名 Dockerfile中sh脚本格式引发的灾难)

    工具的初衷是好的,但是工具如果不加以正确使用、或者不够完善。那将带来的是灾难。

    使用Dockerfile进行镜像构建。里面有这么一行:

    我在ENTRYPOINT处指定了一个脚本。它是在构建镜像时,从一个目录中copy进去的。它将会在docker run时会去执行run.sh里的内容。

    但神奇的问题发生了。我docker build构建镜像成功完毕。docker run启动镜像时报错:

    就这么一行!!我启动时指定镜像没有加-d后台启动,打印的实时日志。就一行这玩意':No such file or directory

    没了,别的什么都没打印。

    WTF!

    漫长排查路~~~~

    文件目录没问题;

    Dockerfile语法查了查,没问题;

    sh脚本内容看了下,也没发现啥问题。

    问题在哪呢??

    尝试在["/run.sh","-x"] 这里尝试加过-t、-x、-c啥的。基本都试了一遍。想着至少能定位下行号,或者多打印点什么出来,但没有。日志仍旧只有那一行,一个字符都不带多的。

    下去抽颗smoke吧,这种问题就是来搞心态的。

    迎着小风,闻着草味,思绪繁杂

    忽然想起来,以前碰到过sh脚本的格式问题导致的报错。叫什么bad inte... no such file directory(时间久记不清了,后查证叫:bad interpreter: No such file or directory)。

    这俩好像看起来有点像。

    再一想,好像更像了。

    赶紧掐灭 上去逮着vi run.sh。:set ff 一看。挖槽 真的是dos....

    万只草泥马开始奔袭。

    :set ff=unix修改保存后。重新构建启动,可以了!!

    忍不住想吐槽一句:这报错报的也太人性化了,跟个鬼一样。

  • 相关阅读:
    chapter1 Qt入门
    base64加密解密
    vue+CryptoJS+cookie实现保存账号密码
    js计时器
    Elenent ui中的表单校验规则、自定义校验规则、预验证功能
    js获取文件后缀
    js中如何将有字符串转换为数组,或将数组转换为字符串
    vue-router
    Vue项目纯前端导出word文档
    async/await
  • 原文地址:https://www.cnblogs.com/haohao111/p/14836090.html
Copyright © 2011-2022 走看看