Docker Jenkins slave 错误的字符编码
Docker Jenkins slave wrong character encoding
我正在使用 this Jenkins slave docker 图像,它基于 ubuntu:14.04
我想使用包含 UTF-8 字符的字符串参数。
öüóőúűáéí
等字符(匈牙利字符)将被替换为 question marks
由于 this 票证提到我试图将 -e LANG=hu_HU.UTF-8
和 bash -c "locale-gen hu_HU.UTF-8"
传递给 docker。我还将 export LANG=hu_HU.UTF-8
放置到 Jenkins 用户的 .bashrc
字符仍然被替换。我也试过 en_US.UTF-8
我也尝试对 Jenkins Job 做同样的事情:
+ export LANG=hu_HU.UTF-8
+ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=hu_HU.UTF-8
LANGUAGE=
LC_CTYPE="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES="hu_HU.UTF-8"
LC_PAPER="hu_HU.UTF-8"
LC_NAME="hu_HU.UTF-8"
LC_ADDRESS="hu_HU.UTF-8"
LC_TELEPHONE="hu_HU.UTF-8"
LC_MEASUREMENT="hu_HU.UTF-8"
LC_IDENTIFICATION="hu_HU.UTF-8"
LC_ALL=
输出是一样的。
谢谢。
我找到了解决方案:
bash -c "locale-gen hu_HU && locale-gen hu_HU.UTF-8 && update-locale && echo 'export LANG=hu_HU.UTF-8' > /jenkins/.bashrc"
另一种(也许更干净)的解决方案是修改作业配置,以便将环境变量注入到构建作业中。
在构建环境部分中,在 'Properties Content' 字段中添加环境变量。
我认为这是一个更干净的解决方案,因为本地 jenkins 帐户没有受到污染,让 Jenkins 安装负责构建环境;当你有> 1个奴隶来维护本地帐户时更可取...
从 Jenkins ver1.613
开始,此解决方案是准确的
我正在使用 this Jenkins slave docker 图像,它基于 ubuntu:14.04
我想使用包含 UTF-8 字符的字符串参数。
öüóőúűáéí
等字符(匈牙利字符)将被替换为 question marks
由于 this 票证提到我试图将 -e LANG=hu_HU.UTF-8
和 bash -c "locale-gen hu_HU.UTF-8"
传递给 docker。我还将 export LANG=hu_HU.UTF-8
放置到 Jenkins 用户的 .bashrc
字符仍然被替换。我也试过 en_US.UTF-8
我也尝试对 Jenkins Job 做同样的事情:
+ export LANG=hu_HU.UTF-8
+ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=hu_HU.UTF-8
LANGUAGE=
LC_CTYPE="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES="hu_HU.UTF-8"
LC_PAPER="hu_HU.UTF-8"
LC_NAME="hu_HU.UTF-8"
LC_ADDRESS="hu_HU.UTF-8"
LC_TELEPHONE="hu_HU.UTF-8"
LC_MEASUREMENT="hu_HU.UTF-8"
LC_IDENTIFICATION="hu_HU.UTF-8"
LC_ALL=
输出是一样的。
谢谢。
我找到了解决方案:
bash -c "locale-gen hu_HU && locale-gen hu_HU.UTF-8 && update-locale && echo 'export LANG=hu_HU.UTF-8' > /jenkins/.bashrc"
另一种(也许更干净)的解决方案是修改作业配置,以便将环境变量注入到构建作业中。
在构建环境部分中,在 'Properties Content' 字段中添加环境变量。
我认为这是一个更干净的解决方案,因为本地 jenkins 帐户没有受到污染,让 Jenkins 安装负责构建环境;当你有> 1个奴隶来维护本地帐户时更可取... 从 Jenkins ver1.613
开始,此解决方案是准确的