run WeChat Work on Archlinux

docker

安装

sudo pacman -S docker docker-compose

配置

添加当前用户到 Docker组

sudo groupadd docker                     
sudo usermod -aG docker $USER
newgrp docker

修正docker 权限

sudo chmod 666 /var/run/docker.sock -v

开机自启动docker 服务,并且现在启动docker

sudo systemctl enable docker --now

在某些内核比如 linux-ck 会遇到以下报错

docker: Error response from daemon: failed to create shim: OCI runtime create failed: container\_linux.go:380: starting container process caused: process\_linux.go:545: container init caused: process_linux.go:508: setting cgroup config for procHooks process caused: load program: invalid argument: unknown.

需要在/etc/default/grub的GRUB_CMDLINE_LINUX_DEFAULT中加入systemd.unified_cgroup_hierarchy=0,更新grub 后重启

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot

Wechat Work

使用

使用镜像为: https://github.com/BoringCat/docker-WXWork

使用 docker-compose.yml

version: '2'
services:
  wechat:
    image: boringcat/wechat:work
    hostname: WXWork    # 可选,用于好看
    devices:
      \- /dev/snd        # 声音设备
    volumes:
      \- /tmp/.X11-unix:/tmp/.X11-unix
      \- $HOME/WXWork:/WXWork
      \- $HOME:/HostHome # 可选,用于发送文件
      \- $HOME/wine-WXWork:/home/wechat/.deepinwine/Deepin-WXWork # 可选,建议,用于持久化 例如:更新企业微信
    ipc: host
    environment:
      DISPLAY: unix$DISPLAY
      QT\_IM\_MODULE: fcitx
      XMODIFIERS: "@im=fcitx"
      GTK\_IM\_MODULE: fcitx
      AUDIO_GID: 995 # 可选 默认995(Archlinux) 主机audio gid 解决声音设备访问权限问题
      GID: 1000 # 可选 默认1000 主机当前用户 gid 解决挂载目录访问权限问题
      UID: 1000 # 可选 默认1000 主机当前用户 uid 解决挂载目录访问权限问题
      DPI: 96 # 可选 默认96 
      WAIT\_FOR\_SLEEP: 5 # 可选 用于启动与退出时检测PID的间隔

运行: docker-compose up

如果你无法启动,请依次尝试

修复 1

xhost +

修复 2

/etc/X11/xorg.conf

Section "Extensions"
    Option "MIT-SHM" "Disable"
EndSection

修复 3

sudo pacman -S extra/gnome-settings-daemon
/usr/lib/gsd-xsettings