在windows环境中使用Dockerfile
编译自己的镜像时运行镜像会出现报错
standard_init_linux.go:190: exec user process caused "no such file or directory"
部分代码如下1
2
3
4COPY 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
6COPY 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"]