Skip to content

Commit e3056f3

Browse files
author
Peter Wu
committed
deepin,archlinux 微信docker打包
1 parent b9d7896 commit e3056f3

13 files changed

+234
-0
lines changed

README.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
[![Docker Image](https://img.shields.io/badge/docker%20image-available-green.svg)](https://hub.docker.com/r/bestwu/wechat/)
2+
3+
### archlinux
4+
5+
镜像基于[archlinux](https://www.archlinux.org/download/)
6+
7+
微信版本:3.9.0
8+
9+
### deepin
10+
11+
镜像基于[深度操作系统](https://www.deepin.org/download/)
12+
13+
微信版本:2.6.8
14+
15+
### 准备工作
16+
17+
允许所有用户访问X11服务,运行命令:
18+
19+
```bash
20+
xhost +
21+
```
22+
23+
## 查看系统audio gid
24+
25+
```bash
26+
cat /etc/group | grep audio
27+
```
28+
29+
fedora 26 结果:
30+
31+
```bash
32+
audio:x:63:
33+
```
34+
35+
### 更新
36+
37+
进入docker容器:docker exec -it wechat bash
38+
运行以下命令更新深度软件包:
39+
40+
```bash
41+
apt-get update
42+
43+
apt-get install -y deepin.com.wechat
44+
45+
```
46+
47+
### 运行
48+
49+
### docker-compose
50+
51+
```yml
52+
version: '2'
53+
services:
54+
wechat:
55+
image: bestwu/wechat
56+
container_name: wechat
57+
ipc: host
58+
devices:
59+
- /dev/snd
60+
volumes:
61+
- /tmp/.X11-unix:/tmp/.X11-unix
62+
- /home/peter/WeChatFiles:/WeChatFiles #使用自己用户目录
63+
environment:
64+
- DISPLAY=unix$DISPLAY
65+
- QT_IM_MODULE=fcitx
66+
- XMODIFIERS=@im=fcitx
67+
- GTK_IM_MODULE=fcitx
68+
- AUDIO_GID=63 # 可选 默认63(fedora) 主机audio gid 解决声音设备访问权限问题
69+
- GID=1000 # 可选 默认1000 主机当前用户 gid 解决挂载目录访问权限问题
70+
- UID=1000 # 可选 默认1000 主机当前用户 uid 解决挂载目录访问权限问题
71+
```
72+
73+
74+
75+
```bash
76+
docker run -d --name wechat --device /dev/snd --ipc="host"\
77+
-v /tmp/.X11-unix:/tmp/.X11-unix \
78+
-v $HOME/WeChatFiles:/WeChatFiles \
79+
-e DISPLAY=unix$DISPLAY \
80+
-e XMODIFIERS=@im=fcitx \
81+
-e QT_IM_MODULE=fcitx \
82+
-e GTK_IM_MODULE=fcitx \
83+
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
84+
-e GID=`id -g` \
85+
-e UID=`id -u` \
86+
bestwu/wechat
87+
```

archlinux/Dockerfile

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
FROM archlinux:latest
2+
LABEL maintainer='Peter Wu <piterwu@outlook.com>'
3+
4+
ENV APP=WeChat \
5+
AUDIO_GID=63 \
6+
VIDEO_GID=39 \
7+
GID=1000 \
8+
UID=1000
9+
10+
RUN groupadd -o -g $GID wechat && \
11+
groupmod -o -g $AUDIO_GID audio && \
12+
groupmod -o -g $VIDEO_GID video && \
13+
useradd -d "/home/wechat" -m -o -u $UID -g wechat -G audio,video wechat && \
14+
echo "wechat ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
15+
mkdir /WeChatFiles && \
16+
chown -R wechat:wechat /WeChatFiles && \
17+
ln -s "/WeChatFiles" "/home/wechat/WeChat Files" && \
18+
echo -e "[multilib]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf && \
19+
sed -i '1i Server = https://mirror.sjtu.edu.cn/archlinux/$repo/os/$arch' /etc/pacman.d/mirrorlist && \
20+
pacman -Syu --noconfirm sudo
21+
22+
USER wechat
23+
24+
COPY *.pkg.tar.zst /tmp/
25+
26+
RUN cd /tmp/ && \
27+
sudo pacman -U --noconfirm lib32-udis86-git-1.7.2.186.g5336633-1-x86_64.pkg.tar.zst deepin-wine-helper-5.1.45_1-1-x86_64.pkg.tar.zst deepin-wine6-stable-6.0.0.42-1-x86_64.pkg.tar.zst deepin-wine-wechat-3.9.0.28-3-x86_64.pkg.tar.zst && \
28+
sudo pacman -Scc --noconfirm && \
29+
sudo rm -fr /tmp/* /var/cache/*
30+
31+
ENV LANGUAGE=zh_CN.UTF-8 \
32+
LC_ALL=zh_CN.UTF-8 \
33+
LANG=zh_CN.UTF-8 \
34+
TZ=UTC-8
35+
36+
VOLUME ["/WeChatFiles"]
37+
38+
ADD entrypoint.sh /
39+
RUN sudo chmod +x /entrypoint.sh && \
40+
sudo sed -i '46s/cur_arch=`arch`/cur_arch=`uname -m`/' /usr/sbin/deepin-wine6-stable
41+
42+
ENTRYPOINT ["/entrypoint.sh"]
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

archlinux/entrypoint.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
sudo groupmod -o -g $AUDIO_GID audio
4+
sudo groupmod -o -g $VIDEO_GID video
5+
if [ $GID != $(echo `id -g wechat`) ]; then
6+
sudo groupmod -o -g $GID wechat
7+
fi
8+
if [ $UID != $(echo `id -u wechat`) ]; then
9+
sudo usermod -o -u $UID wechat
10+
fi
11+
sudo usermod -aG video wechat
12+
13+
echo "启动 $APP"
14+
15+
"/opt/apps/com.qq.weixin.deepin/files/run.sh"
16+
17+
sleep 300
18+
19+
while test -n "`pidof WeChat.exe`"
20+
do
21+
sleep 60
22+
done
23+
echo "退出"
24+
25+
Binary file not shown.

0 commit comments

Comments
 (0)