GitLab-CI中Docker Run运行Windows容器出现乱码输出问题排查
GitLab-CI中Windows Docker容器输出乱码问题解决
本地执行docker run输出正常,但GitLab-CI中出现乱码,核心原因是Windows容器内PowerShell默认编码与GitLab Runner环境的编码不匹配(GitLab通常期望UTF-8输出),需要调整ENTRYPOINT配置来统一编码。
修改方案
直接调整ENTRYPOINT,强制PowerShell以UTF-8编码输出:
FROM mcr.microsoft.com/windows/servercore:ltsc2022 [...] ENTRYPOINT ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass", "-Command", "$OutputEncoding = [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new(); & $args"]该配置会在PowerShell启动时立即设置输出编码为UTF-8,确保GitLab-CI能正确解析输出内容。
可选方案:通过环境变量指定编码(部分镜像适用):
FROM mcr.microsoft.com/windows/servercore:ltsc2022 ENV LC_ALL=en_US.UTF-8 ENV LANG=en_US.UTF-8 [...] ENTRYPOINT ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]部分Windows容器镜像可通过环境变量触发编码适配,但第一种直接强制编码的方式兼容性更强。
内容的提问来源于stack exchange,提问作者malat
相关产品推荐
相关产品推荐

