ubuntu22.04のDockerにwineを導入し、Windowsアプリをrdp(vnc)経由で動作させる手順その3(自作xrdp+wine環境)

前回に引き続き、古いWindowsアプリ(Kinetic BaseStation)をDockerで動作させました。

現在Dockerで配布されているイメージは一長一短なので、自分でイメージを作ってみました。

結論:
ubuntu20.04の環境にxrdp+wineを搭載した。(modesmixer2が起動するOS)
イメージのサイズは3.1GB程度。
xrdpの起動に20秒程度かかるが、noVNCよりも画像が鮮明のような気がする。

以下構築手順です。

手順1: Dockerfile作成

#Use a base XRDP container
FROM danielguerra/ubuntu-xrdp:20.04

#Required to add a repo
RUN apt-get update && apt-get install -y software-properties-common

#Add additional repo required for wine install
RUN dpkg --add-architecture i386
RUN wget -nc https://dl.winehq.org/wine-builds/winehq.key
RUN apt-key add winehq.key
RUN apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main'
RUN apt update && apt-get install -y --install-recommends winehq-stable

# https://www.kkaneko.jp/tools/server/tightvnc.html
#
RUN apt-get install -y telnet
# RUN apt-get install -y tightvncserver

手順2: build・起動。(xrdpを13389ポートで公開する場合)

# build(Dockerfileのあるフォルダで実行)
docker build -t my.xrdp.image  .

# 起動 
docker run  --name my.xrdp --shm-size 1g -p 13389:3389 -d  my.xrdp.image

これで基本的な環境が構築できました。

あとはBaseStation.exeを任意のフォルダにコピーし、起動するだけです。

noVNCはブラウザのみで操作できるお手軽さがありますが、解像度はRDPに劣る気がします。

しばらくはこの環境で、BaseStationを動作させたいと思います。

BaseStationに限らず「かなり古いWindowsアプリを動作させる必要がある」場合には、RDPとWineによる環境構築が役に立ちそうです。