[Docker][deepin-wine]微信运行

通过deepin-wineUbuntu 18.04上运行微信

微信安装包地址:deepin.com.wechat

完整脚本地址:wechat

安装

编写Dockerfile

  1. 安装wget ttf-wqy-microhei gosu dbus
  2. 创建普通用户user,下载微信安装包,修改属主并安装
  3. 清理资源
  4. 设置启动项docker-entrypoint.sh

注意:不安装中文字体会导致微信中文乱码

编写docker-entrypoint.sh

  1. 获取主机传入的环境变量,包括用户ID,用户组ID,音频组ID,视频组ID,修改user属性
  2. 切换普通用户user,启动微信

deepin-wine的微信出现的一个问题是第一次运行时会自动结束程序再启动,参考bestwu/docker-wechat,通过sleep功能保持容器运行

构建

$ docker build -t zjzstu/wechat:latest .
$ docker image ls
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
zjzstu/wechat        latest              9d4352ba37fd        56 seconds ago      954MB

运行

参考:Ubuntu下使用Tim/Wechat

  • 将主机用户ID,用户组ID,音频组ID和视频组ID传入容器
  • 挂载本地deepin-wine配置目录到容器
  • 挂载本地wechat配置目录到容器

注意:每次重新调用微信启动命令,都需要重新登录(好像是deeping-wine的设置),所以无法登录多组用户

可执行脚本

在主机新建脚本wechat.sh,统一操作wechat的启动。根据wechat容器的状态分3种情况

  • 没有wechat容器运行时执行新建容器操作
  • 正在运行容器则使用docker exec命令进入容器启动微信程序
  • 容器停止运行时执行重启容器操作

将其放置在/usr/local/bin目录下,即可在任何地方启动

菜单启动器

docker exec方式进入容器

获取/opt/deepinwine/apps/Deepin-WeChat目录下的deepin.com.wechat.desktop文件,修改参数Exec,放置到主机/usr/share/applications/

Exec=/usr/local/bin/wechat

获取/usr/share/icons/hicolor/目录下的wechat图标,放置到主机对应位置

# locate deepin.com.wechat | grep icon
/usr/share/icons/hicolor/16x16/apps/deepin.com.wechat.svg
/usr/share/icons/hicolor/24x24/apps/deepin.com.wechat.svg
/usr/share/icons/hicolor/32x32/apps/deepin.com.wechat.svg
/usr/share/icons/hicolor/48x48/apps/deepin.com.wechat.svg
/usr/share/icons/hicolor/64x64/apps/deepin.com.wechat.svg
# 复制容器图标到主机图标
$ pwd
/usr/share/icons/hicolor
$ sudo cp -r ~/deepin-wine/hicolor/* ./

Ubuntu 18.04设置

Ubuntu 18.04中打开微信后发现出现多个小框,参考

微信运行窗口老是有一个黑色正方形方块 #22

ubuntu 18.04 dash 图标分组问题 #74

需要两个步骤操作:

第一步:需要安装系统插件TopIcons Plus,打开Ubuntu软件,选择附加组件,搜索topicons plus并安装

第二步:打开一个窗口,输入类似666这样的表情包,就能删除屏幕中央马赛克图案