Dockerfile:检查生成机器是否为Windows

我们有一个Docker项目,由使用Windows,Mac或Linux的开发人员共享。

不幸的是,我们无法控制项目被克隆的方式 ,因此Windows开发人员在构buildDocker镜像时可能会遇到不好的结局,因此构build可能会失败。

为了解决这个问题,我们在Dockerfile中添加了一行代码,以便在生成过程开始之前用Unix行结束符replace所有的Windows行结束符:

ADD . /app RUN find . -type f -exec sed -i 's/\x0d//g' {} \+ 

但问题是,即使在Linux和Mac机器上,构build速度现在也要慢得多。

我只想在Windows机器上RUN这个命令的时候RUN这个命令。 但是有Dockerfile检测的方法吗?

你可以尝试用这样的东西replace“ADD …”行:

 RUN git clone <your.repo.git> src ADD src /app 

我还没有testing,但文件将由您的Dockerfile基础镜像的git创build,所以每个人都应该有相同的文件。