前回に引き続き、古い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による環境構築が役に立ちそうです。