运行docker容器异常退出,使用docker logs -f container_id查看日志发现:
standard_init_linux.go:207: exec user process caused "no such file or directory"
在网上查找资料,并经过排查,主要有以下两个原因:
1、windows与linux换行符不一致
windows:\r\n代表换行,拆分两个代码是:回到行首+换到下一行
linux:只用\n即可以代表换行。
这类问题,可将文本转换为linux风格,重新构建
dos2unix Dockerfile
dos2unix entrypoint.sh
2、容器默认shell解释器
查看镜像详细,发现默认解释器为/bin/sh
脚本抬头写的解释器为:
#!/bin/bash
将/bin/bash改为/bin/sh,重新构建即可解决