Py学习  »  docker

支持多开的docker版微信

各种折腾 • 11 月前 • 618 次点击  

简介

什么是 docker-wechat ?

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

主要特点:

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

使用场景:

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

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

安装

在群晖上以 Docker 方式安装。

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

[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用于发送和保存文件

端口

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

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口说明
58055800Web 端口
59055900vnc端口

环境

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

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

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

命令行安装

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

# 新建文件夹 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 文件

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

然后执行下面的命令

# 新建文件夹 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 应用,所以不能直接输入,只能通过左侧的剪贴板进行传递

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

https://www.bilibili.com/video/BV1CszKYbEji/?vd_source=c79853f29bef58d485cf229dab423726

参考文档

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/

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/176633