Ubuntu 環境における Docker 経由の WeChat 構築とマルチインスタンス設定

Linux 公式クライアントの状況

Ubuntu などの Linux ディストリビューションにおいて、WeChat の公式ネイティブクライアントは提供されていません。公式ダウンロードページを確認すると、Windows、macOS、iOS、Android 向けのバイナリのみが存在し、Linux 版は欠缺しています。また、ウェブ版についても、セキュリティ確認後のログイン制限により、実用性が低下しているのが現状です。

Docker コンテナを利用した解決策

公式サポートがない環境において、Docker コンテナ技術を利用することで WeChat を動作させることが可能です。コミュニティにより維持されている Docker イメージを利用し、X11 転送を通じて GUI アプリケーションとして起動します。

イメージの取得

まず、信頼性の高い Docker イメージをレジストリから取得します。以下のコマンドでイメージをローカルにダウンロードします。

docker pull bestwu/wechat

ダウンロード完了後、docker images コマンドを用いてローカルリポジトリにイメージが存在するか確認してください。

実行環境の準備

コンテナ内のアプリケーションがホスト機のディスプレイ描画にアクセスできるよう、X11 への接続許可を設定する必要があります。ターミナルで以下のコマンドを実行します。

xhost +

さらに、ファイルのやり取りをホスト機と共有するために、マウント用のディレクトリを作成します。

mkdir -p ~/wechat-volume

コンテナの起動

以下のコマンドで WeChat コンテナを起動します。音声デバイスへのアクセス権限や、環境変数による入力フレームワークの設定を含んでいます。

docker run -d \
  --name wechat-main \
  --device /dev/snd \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v ~/wechat-volume:/WeChatFiles \
  -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) \
  bestwu/wechat

初回起動時は少し時間がかかる場合があります。ウィンドウが表示されたら、スマートフォンの WeChat アプリから QR コードをスキャンしてログインします。

起動状態は docker ps で確認可能です。

複数インスタンスの運用

複数の WeChat アカウントを同時に利用したい場合、同じイメージを用いて別のコンテナを起動することで実現できます。

  • 上記の docker run コマンドをコピーする
  • --name パラメータを変更する(例:wechat-sub
  • 必要に応じてボリュームマウント先を変更する(データを分離する場合)

変更後のコマンドを実行すれば、独立したウィンドウとして別のアカウントでログインできます。

バージョン管理に関する注意点

この Docker イメージ内にバンドルされている WeChat クライアントのバージョンは固定されています。コンテナ内で更新を試みても、イメージの構造上最新版本へアップデートすることはできません。これは Deepin 環境などをベースにした特定のバージョンで固定化されているためです。

タグ: Ubuntu Docker WeChat X11 Container

5月19日 23:46 投稿