感谢bestwu提供的deepin-wine镜像
在此基础上修改Dockerfile
与entrypoint.sh
得到企业微信的docker镜像
本镜像基于深度操作系统
entrypoint.sh
$GID:$UID
$GID:$UID
持久化时需要注意 !!!!!!如果你遇到这个情况:
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x0
Serial number of failed request: 10
Current serial number in output stream: 10
请参考:
AUR (en) - deepin.com.qq.office
运行不出界面 · Issue #2 · bestwu/docker-qq
$ echo $XDG_SESSION_TYPE
x11
运行命令:
$ xhost +
参考这个issue的解决方案: xhost +x 了,但是没有界面 · Issue #8 · bestwu/docker-qq
或 20200421 复制的内容:
试试禁用“MIT-SHM”共享X进程内存的功能
具体操作:
vi /etc/X11/xorg.conf
增加:
Section "Extensions"
Option "MIT-SHM" "Disable"
EndSection
$ getent group audio | cut -d ":" -f3
Archlinux 结果:
995
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 run -d --name wechat --device /dev/snd --ipc host \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME/WXWork:/WXWork \
-v $HOME:/HostHome \
-v $HOME/wine-WXWork:/home/wechat/.deepinwine/Deepin-WXWork \
-e DISPLAY=unix$DISPLAY \
-e XMODIFIERS=@im=fcitx \
-e QT_IM_MODULE=fcitx \
-e GTK_IM_MODULE=fcitx \
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
-e GID=`id -g` \
-e UID=`id -u` \
-e DPI=96 \
-e WAIT_FOR_SLEEP=1 \
boringcat/wechat:work