我正在尝试从运行此命令的docker客户端(Windows)构建一个docker镜像:
docker --host a.b.c.d build --no-cache=true --build-arg CONFIGURATION=live -t imagename .
docker主机也是一个Windows Docker,但是我收到了这个错误:
安全警告:您正在从Windows构建Docker镜像 非Windows Docker主机。添加到构建的所有文件和目录 上下文将具有'-rwxr-xr-x'权限。建议 对敏感文件进行双重检查和重置权限 目录。
然后在第一次尝试之后这个:
无效字符'<'寻找价值的开端
任何人都知道为什么会这样吗?我以前没有错误,唯一的区别在于代码源。有关我使用Jenkins构建项目的信息?感谢。
更新1 - Dockerfile
FROM microsoft/windowsservercore
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
ARG CONFIGURATION
EXPOSE 80
ADD src/MyFolder/bin/$CONFIGURATION/ /ContainerFolder
CMD /ContainerFolder/MyApp.exe
答案 0 :(得分:2)
添加了该警告,因为Windows文件系统没有将文件标记为“可执行”的选项。因此,如果必须将文件标记为可执行文件,则从Windows计算机构建linux映像将破坏该映像。
因此,从Windows客户端构建文件时,默认情况下将文件标记为可执行文件。警告在那里,以便您收到通知,并(如果需要)修改Dockerfile以在事后更改/删除可执行文件位。
答案 1 :(得分:1)
现在已修复。问题出在网关防火墙上,它检测到构建上下文中发送的文件是否为特洛伊木马。可能是Docker构建上下文zip文件或使用不同的扩展名。