出了几个web水题,甲方要求写dockerfile,萌新我表示没写过,只能现场学一波了。

下面是我写dockerfile的心塞史。把遇到的几个小问题列一下。

0X01.别为了图快直接FROM别人的镜像!

直接from大牛封装的镜像固然是快捷便利,但是相应的自己学习的知识就少了很多,很多安装、运维之类的经验就少了。而且,对应的各服务版本的坑也要重新处理。可能封装的php或者mysql版本和你代码不一样,就会导致一堆坑。这里不说了,心塞。

0X02.报错bash:$’\r’: command not found!

出现这个问题的原因是在win下编辑,然后放linux里面跑,而win的回车其实是”\r\n”,而放linux里面换行只有”\n”,所以需要将文件的格式从dos转换为unix。

这里提供三种解决方法:

a:使用dos2unix命令

dos2unix   xxx.sh

 

b:  使用vim或者vi命令

进入编辑页面之后

输入:set ff

可以看到当前的文件格式是dos,现在我们把它转unix。

:set ff=unix或者:set fileformat=unix

 

c:使用sed命令去掉”\r”

sed -i ‘s/\r$//’ <filename>

0X03.报错No such file or directory The command ‘/bin/sh’

原因有二。

a:路径原因。

你的sh文件不在docker的/bin/sh里面。

b:同0X02报错的原因。

在win下编辑放linux里会报该错误。解决方法同0X02。

 

0x04.报错starting container process caused “exec: \”/run.sh\”: stat /run.sh: no such file or directory”.

路径原因。CMD处执行的run.sh文件与run命令中的不一样导致。(也只有我这个傻逼才会范这种错误吧。搞得头昏眼花了。

这里只是单独把dockerfile运行的一部分拿出来讲,还有mysql和php.ini里面的各种调整debug。心塞,这里就不一一细讲了。

233333貌似鸽博客好久了,这几个月想写的文章和wp也不想写了hhh(逃,时间要留给接下来的挑战和学习呢!

 

分类: Docker

3 条评论

tinmin · 2018年7月18日 上午3:18

tql

郁离歌 · 2018年7月20日 下午2:02

run.sh无法执行也有可能是权限的问题

    admin · 2018年7月21日 下午4:41

    我给了权限的,破案了其实是我run.sh文件首部写错23333菜到无地自容。

发表评论

电子邮件地址不会被公开。 必填项已用*标注