在k8s上 运行docker镜像,报错:
standard_init_linux.go:207: exec user process caused “no such file or
directory”
原因:
windows下文件默认编码格式为dos,linux下默认为unix。因此在解析文件时出错,报错no such file or directory。
验证方式:
将Dockerfile 文件放在linux下查看。
运行 cat -v Dockerfile 结果 RUN chmod +x /app-entrypoint.sh^M
#M-eM-/M-9M-eM-$M-^VM-fM-^ZM-4M-fM-<M-^OM-gM-^ZM-^DM-gM-+M-/M-eM-^OM-#M-eM-^OM-7^M
EXPOSE 8761^M
这种有^M 的即为编码错误造成
解决方式:
linux下打包
有人说将.sh文件的头部 #!/bin/bash 改为#!/bin/sh也可以 我自己尝试没有起作用
遗留问题:
同样windows下打包的镜像,在k8s的一些集群上可以运行,但在这个集群下不能运行,应该与集群配置有关,但暂未找出原因。
如果有人知道原因 可以留言 谢谢