Skip to content

[Ubuntu 18.04]中文环境配置

当前使用Docker Ubuntu 18.04镜像,对官方镜像进行进一步配置以适应中文开发环境。有以下几个方面:

  1. 镜像源
  2. 中文字体
  3. 中文字符集
  4. 时区
  5. 中文输入法

镜像源

参考[Ali mirror]更换国内源

中文字体

参考:[Ubuntu]中文乱码

zh_CN.UTF_8字符集设置

参考[Linux][locale]字符集设置

时区设置

Docker Ubuntu 18.04默认的时区和亚洲 - 上海时区相差8个小时(东八区)

Dockerfile中增加以下命令

ENV DEBIAN_FRONTEND=noninteractive
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN apt-get install -y tzdata && dpkg-reconfigure --frontend noninteractive tzdata

还有一种方式是在使用docker run命令时同步主机时区

$ docker run -v /etc/localtime:/etc/localtime:ro ...

中文输入法

在主机安装了fcitx中文输入法 - google-pinyin,在启动容器时配置

docker run \
        -e XMODIFIERS="@im=fcitx" \
        -e QT_IM_MODULE="fcitx" \
        -e GTK_IM_MODULE="fcitx" \
        ...
        ...

编辑

Dockerfile脚本如下:

FROM ubuntu:18.04
LABEL maintainer "zhujian <zjykzj@github.com>"

COPY sources.list .
ENV DEBIAN_FRONTEND=noninteractive
RUN set -eux && \
    rm /etc/apt/sources.list && \
    mv sources.list /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y locales tzdata xfonts-wqy && \
    locale-gen zh_CN.UTF-8 && \
    update-locale LANG=zh_CN.UTF-8 LANGUAGE=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 && \
    ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    dpkg-reconfigure --frontend noninteractive tzdata && \
    find /var/lib/apt/lists -type f -delete && \
    find /var/cache -type f -delete

ENV LANG=zh_CN.UTF-8 LANGUAGE=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8
  • 加载docker官方镜像ubuntu:18.04
  • 复制源配置文件sources.list到镜像
  • 替换源配置文件并更新安装列表,设置中文字体、设置zh_CN.UTF-8并删除额外文件
  • 设置字符集环境变量

构建

$ docker build -t zjykzj/ubuntu:18.04 -t zjykzj/ubuntu:latest .

使用

$ docker run \
    -e XMODIFIERS="@im=fcitx" \
    -e QT_IM_MODULE="fcitx"  \
    -e GTK_IM_MODULE="fcitx" \
    -it --rm  \
    --name ubuntu \
    zjykzj/ubuntu:18.04 \
    bash

相关阅读