Dockerfile问题解决
在windows环境中使用Dockerfile编译自己的镜像时运行镜像会出现报错
standard_init_linux.go:190: exec user process caused "no such file or directory"
部分代码如下
1 2 3 4 | COPY docker-entrypoint.sh /usr/local/bin/ RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # ENTRYPOINT ENTRYPOINT ["/docker-entrypoint.sh"] |
百度,谷歌查了一遍,才知道怎么回事。
具体点击链接。
简单点说就是window文件换行符为\r\n,linux为\n,拷贝到镜像里的docker-entrypoint.sh无法被识别为可执行文件,所以报错
解决方法
1
docker-entrypoint.sh保存时候选择LF保存
2
使用dos2unix
上述Dockerfile代码修改为:
1 2 3 4 5 6 | COPY docker-entrypoint.sh /usr/local/bin/ RUN yum install -y dos2unix RUN dos2unix /usr/local/bin/docker-entrypoint.sh RUN ln -s /usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # ENTRYPOINT ENTRYPOINT ["/docker-entrypoint.sh"] |