解决docker CMD/ENTRYPOINT执行sh脚本报: not found/run.sh:
Dockerfile配置没有问题,为什么执行ENTRYPOINT命令时一直错误?
容器一启动就退出了。
查了不少资料,想了好久才发现原因。
run.sh是被COPY指令复制到容器中的,而本机是windows,默认的换行符是\n,故而复制过去无法被执行。
解决办法很简单,切换文件格式为LF即可。
补充知识:docker中启动容器时CMD调用的sh脚本中if命令报未预期的符号 if[[的解决办法
最近通过Dockerfile编写镜像,CMD中调用的是sh脚本(start.sh)进行启动容器,通过docker run启动时,启动不成功,进行docker logs 容器ID,发现报错为:未预期的符号 if [[
我直接在外部linux系统调用执行start.sh是成功的,通过docker exec 进入容器,在容中调用start.sh也未报错,命令中需要启动的程序都成功启动。
脚本直接执行没问题,通过docker run却报错,百思不得其解。
start.sh中报错代码段如下
if [[ -e /home/dc/testnn-aaa.zip ]];then rm -rf /home/testnn-aaa unzip -q -o -d /home testnn-aaa.zip echo "unzip zip finished" else echo "dc zip not exist" fi
经过查阅比较,因为我的start.sh在报错语句之前也有if语句,但是没报错,发现两处区别为第一处if使用的是单[],将代码改为[],则成功,修改如下:
if [ -e /home/dc/testnn-aaa.zip ];then
上一篇:Tcpdump 的用法
栏 目:
本文标题:解决docker CMD/ENTRYPOINT执行sh脚本报: not found/run.sh:
本文地址:http://www.codeinn.net/misctech/225779.html
阅读排行
- 1详解Metrics应用监控指标的使用说明
- 2react如何添加less环境配置
- 3使用docker安装部署NextCloud私人网盘的方法步骤
- 4解决docker CMD/ENTRYPOINT执行sh脚本报: not found/run.sh:
- 5Tcpdump 的用法
- 6react使用axios进行api网络请求的封装方法详解
- 7Docker-swarm快速搭建redis集群的方法步骤
- 8Windows 2003 SP2上QQ死机的多种解决方案
- 9解决Default storage engine (InnoDB) is not available导致mysql无法启动的修改办法
- 10R语言RCode与RStudio使用对比体验分析总结