【问题标题】:Docker Jenkins slave wrong character encodingDocker Jenkins slave错误的字符编码
【发布时间】:2017-09-01 04:50:38
【问题描述】:

我使用的是thisJenkins slave docker镜像,它基于ubuntu:14.04

我想使用一个包含 UTF-8 字符的字符串参数。

öüóőúűáéí(匈牙利字符)等字符将被替换为question marks

正如this 票证所提到的,我试图将-e LANG=hu_HU.UTF-8bash -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 docker jenkins character-encoding jenkins-slave


【解决方案1】:

另一种(可能更简洁)的解决方案是修改作业配置,以便将环境变量注入到构建作业中。

在 Build Environment 部分的“Properties Content”字段中添加环境变量。

我认为这是一个更清洁的解决方案,因为本地 jenkins 帐户没有受到污染,让 Jenkins 安装来处理构建环境;当你有> 1个奴隶来维护本地帐户时,最好... 从 Jenkins ver1.613 开始,此解决方案是准确的

【讨论】:

    【解决方案2】:

    我找到了解决办法:

    bash -c "locale-gen hu_HU && locale-gen hu_HU.UTF-8 && update-locale &&  echo 'export LANG=hu_HU.UTF-8' > /jenkins/.bashrc"
    

    【讨论】:

      猜你喜欢
      • 2021-07-13
      • 2018-07-18
      • 2019-01-28
      • 2022-12-05
      • 2016-11-25
      • 1970-01-01
      • 2023-03-03
      • 2021-10-07
      • 2017-04-14
      相关资源
      最近更新 更多