概述

最近发现系统的docker占用的系统资源实在有点大

docker system df

其中镜像占了19G,这主要还是以前为了省事直接把deepin系统做成了镜像造成了。现在打算用ubuntu系统作为载体,现在把其中遇到的问题罗列一下。

金山WPS Office

wps office for linux 2019(对应11.x版本),增加一些云办公功能,但是在docker环境中也无法使用fcitx输入法输入中文。所以这里使用wps 10.1版本。
由于最新版(20.04)的libpng已经变成version20,所以使用ubuntu18.04,方便类库升级。

  1. 下载容器
docker pull ubuntu:18.04
  1. 连接容器内shell
#!env bash
xhost +
docker run -ti  \
       -e DISPLAY=$DISPLAY \
       -e XMODIFIERS=@im=fcitx \
       -e QT_IM_MODULE=fcitx \
       -e GTK_IM_MODULE=fcitx \
       -e LC_ALL=zh_CN.utf-8 \
       -e QT_X11_NO_MITSHM=1 \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       -v /home/user1/downloads:/root/Downloads \
       -v /mnt/nas/misc:/root/Misc \
       ubuntu:18.04 bash
  1. 更新sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

默认好像没有编辑器,所以可以在主机上先创建好文件,通过docker共享替换文件。

cp ~/Downloads/sources.list /etc/apt/sources.list

更新系统源

apt update
  1. 下载并安装 wps-office_10.1.0.5444_amd64.deb
dpkg -i wps.deb

期间会提示缺少多个软件包,按照提示执行命令补全缺少的依赖

apt --fix-broken install

如果无法自动安装依赖,就需要手动逐个安装了

apt install xxxx

其中libpng12在ubuntu18.04中版本比较低,但是系统源中又没有对应版本,所以需要下载单独的deb文件装

dpkg -i libpng12.deb

最后重新安装wps.deb

  1. 安装wps缺少的字体
    wps也是为了规避版权问题没有在程序中内置这些字体,可以直接在搜索引擎中搜索下这个字体压缩包。wps_symbol_fonts.zip
unzip wps_symbol_fonts.zip
cd wps_symbol_fonts
# 复制字体到系统字体目录
cp * /usr/share/fonts/
  1. 安装中文字体
    这里就比较随意了,微软雅黑或者文泉艺字体都可以,同样复制ttf文件到/usr/share/fonts目录

  2. 更新系统locale编码

vim /etc/locale.gen
en_us.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

# 更新编码
locale-gen

如果以上命令找不到,可以安装apt-file查找命令所在的软件包

apt install apt-file
apt-file update
# 查看locale-gen在哪个软件包
apt-file search locale-gen

# locale-gen 命令对应的软件包
apt install locales 
  1. 配置docker运行命令
xhost +
docker run -i --rm \
       -e DISPLAY=$DISPLAY \
       -e XMODIFIERS=@im=fcitx \
       -e QT_IM_MODULE=fcitx \
       -e GTK_IM_MODULE=fcitx \
       -e QT_X11_NO_MITSHM=1 \
       -e LC_ALL=zh_CN.utf-8 \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       wps wps

百度网盘

百度网盘的安装和wps类似,可以直接参考wps的流程。不过linux版的百度网盘实际上是electron的套壳web程序。
在最后执行的时候,如果有如下提示:

exception in initAndListen: 14043 clear tmp files caught exception exception: locale::facet::_S_create_c_locale name not valid, terminating

说明这个程序设置locale为C才可以。
同时提示程序如果在root下运行过,需要附加--no-sandbox参数。
运行脚本如下

xhost +
docker run -i --rm \
       -e DISPLAY=$DISPLAY \
       -e XMODIFIERS=@im=fcitx \
       -e QT_IM_MODULE=fcitx \
       -e GTK_IM_MODULE=fcitx \
       -e QT_X11_NO_MITSHM=1 \
       -e LC_ALL=C \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       baiducloud /opt/baidunetdisk/baidunetdisk --no-sandbox