支持多开的docker版微信

简介

什么是 docker-wechat ?

docker-wechat 是一个开源项目,旨在通过 Docker 容器运行微信(WeChat)客户端。该项目允许用户通过网页或 VNC 访问微信,从而在不同的操作系统和环境中使用微信,无需直接在本地安装。

主要特点:

  • 容器化运行:将 Linux 版微信打包在 Docker 容器中,方便部署和管理。
  • 多种访问方式:支持通过网页浏览器或 VNC 客户端访问微信界面。
  • 可配置环境变量:允许用户根据需要设置语言、时区、音频支持等。
  • 持久化存储:可以将用户数据和文件映射到主机,以确保数据的持久性。

使用场景:

  • 在不支持微信的操作系统上运行。
  • 需要在服务器上运行微信进行远程访问。
  • 方便开发者或用户在不同环境中使用微信。

既然是基于 VNC 的应用,输入就是个问题,只能通过剪贴板进行中转,因此最大的作用可能就是用来保存聊天记录吧

安装

在群晖上以 Docker 方式安装。

【注意】:在低版本内核的机器上,比如老苏使用的 DSM 6.17 上,会遇到下面的错误

1
2
3
4
5
6
7
[app         ] Fatal glibc error: cannot get entropy for arc4random
[app ] [1203/222541.966345:ERROR:process_memory_range.cc(86)] read out of range
[app ] [1203/222541.966450:ERROR:elf_image_reader.cc(606)] missing nul-terminator
[app ] [1203/222541.966700:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[app ] [1203/222541.966935:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[app ] [1203/222542.073861:ERROR:directory_reader_posix.cc(42)] opendir /root/.xwechat/crashinfo/attachments/8570a4d3-5084-42cb-a5fd-ba36a23f696f: No such file or directory (2)
[app ] [1203/222542.080718:ERROR:exception_handler_server.cc(53)] EPOLLERR: Connection reset by peer (104)

解决办法是换一台机器,比如在 DSM 6.23 上就可以

在注册表中搜索 ricwang ,选择第二个 ricwang/docker-wechat,版本选择 latest

本文写作时, latest 版本对应为 4.0.0.30

【注意】:图形化安装方式,无法加载声卡设备 /dev/snd,如果你的设备支持声卡,建议用 docker cli 方式安装

权限

勾选 使用高权限执行容器

docker 文件夹中,创建一个新文件夹 wechat,并在其中建三个子文件夹 xwechatxwechat_filesdownloads

文件夹 装载路径 说明
docker/wechat/xwechat /root/.xwechat 微信的配置文件夹
docker/wechat/xwechat_files /root/xwechat_files 微信聊天记录文件夹
docker/wechat/downloads /root/downloads 用于发送和保存文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口 说明
5805 5800 Web 端口
5905 5900 vnc端口

环境

可变
LANG 区域设置,用于定义应用程序的语言(如果支持)
USER_ID 用户 ID0 的用户是超级用户(root 用户),具有最高权限
GROUP_ID ID0 通常表示 root
WEB_AUDIO 当设置为 1 时,启用音频支持,意味着应用程序产生的任何音频都通过浏览器播放。注意 VNC 客户端不支持音频。
TZ 容器使用的时区

图形化安装不能挂载声卡,所以使用默认的 WEB_AUDIO=0

更多的环境变量,请参考官方文档:https://github.com/RICwang/docker-wechat#环境变量

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 新建文件夹 wechat 和 子目录
mkdir -p /volume2/docker/wechat/{downloads,xwechat,xwechat_files}

# 进入 wechat 目录
cd /volume2/docker/wechat

# 运行容器
## 有声卡的安装命令
docker run -d \
--name wechat_docker \
--privileged \
-v $(pwd)/xwechat:/root/.xwechat \
-v $(pwd)/xwechat_files:/root/xwechat_files \
-v $(pwd)/downloads:/root/downloads \
-v /dev/snd:/dev/snd \
-p 5805:5800 \
-p 5905:5900 \
-e LANG=zh_CN.UTF-8 \
-e USER_ID=0 \
-e GROUP_ID=0 \
-e WEB_AUDIO=1 \
-e TZ=Asia/Shanghai \
ricwang/docker-wechat:latest

## 没有声卡的安装命令
docker run -d \
--name wechat_docker \
--privileged \
-v $(pwd)/xwechat:/root/.xwechat \
-v $(pwd)/xwechat_files:/root/xwechat_files \
-v $(pwd)/downloads:/root/downloads \
-p 5805:5800 \
-p 5905:5900 \
-e LANG=zh_CN.UTF-8 \
-e USER_ID=0 \
-e GROUP_ID=0 \
-e WEB_AUDIO=0 \
-e TZ=Asia/Shanghai \
ricwang/docker-wechat:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: '3'

services:
wechat:
image: ricwang/docker-wechat:latest
container_name: wechat_docker
volumes:
- ./xwechat:/root/.xwechat
- ./xwechat_files:/root/xwechat_files
- ./downloads:/root/downloads
ports:
- "5805:5800"
- "5905:5900"
environment:
- LANG=zh_CN.UTF-8
- USER_ID=0
- GROUP_ID=0
- WEB_AUDIO=0
- TZ=Asia/Shanghai
privileged: true

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 wechat 和 子目录
mkdir -p /volume2/docker/wechat/{downloads,xwechat,xwechat_files}

# 进入 wechat 目录
cd /volume2/docker/wechat

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5805 就能看到二维码界面

展开左侧,有剪贴板,因为是 vnc 应用,所以不能直接输入,只能通过左侧的剪贴板进行传递

手机扫码即可登录,因为需要遮盖的太多,就不发了。官方有多开安装和使用的视频

参考文档

RICwang/docker-wechat: 在docker里运行wechat,可以通过web或者VNC访问wechat
地址:https://github.com/RICwang/docker-wechat

把微信放到docker里,你想开几个就开几个,官方也没想到~ | By Ricky_哔哩哔哩_bilibili
地址:https://www.bilibili.com/video/BV1CszKYbEji/?vd_source=c79853f29bef58d485cf229dab423726

微信 Linux 测试版
地址:https://linux.weixin.qq.com/