Instead of download ~600 dependencies on your Linux by installing Wine, try this image!
The need to this aproach came from the will to play Hearthstone on my Ubuntu 18.04, without installing all the hundreds of Wine dependencies.
So, inspired by this post on LinuxConfig.org on how to install it on Ubuntu, and this post on ROS.org on how to use Docker with XServer, and many other researches, I ended up with this image.
5.2-staging
,staging
;5.1-staging
;5.0.0-staging
;4.21-staging
;4.20-staging
;4.19-staging
;4.18-staging
;4.17-staging
;4.16-staging
;4.15-staging
;4.14-staging
;4.13-staging
;4.12.1-staging
;4.11-staging
;4.10-staging
;4.9-staging
;4.8-staging
;4.7-staging
;4.6-staging
;4.5-staging
;4.4-staging
;4.3-staging
;4.2-staging
;4.1-staging
;4.0-staging
;3.21.0-staging
;3.20.0-staging
;3.19.0-staging
;3.18.0-staging
;3.17.0-staging
;3.16.0-staging
;3.15.0-staging
;3.14.0-staging
;3.13.0-2-staging
;3.12.0-staging
;3.11.0-staging
;3.10.0-staging
;
5.2-devel
,devel
;5.1-devel
;5.0.0-devel
;4.21-devel
;4.20-devel
;4.19-devel
;4.18-devel
;4.17-devel
;4.16-devel
;4.15-devel
;4.14-devel
;4.13-devel
;4.12.1-devel
;4.11-devel
;4.10-devel
;4.9-devel
;4.8-devel
;4.7-devel
;4.6-devel
;4.5-devel
;4.4-devel
;4.3-devel
;4.2-devel
;4.1-devel
;4.0-devel
;3.21.0-devel
;3.20.0-devel
;3.19.0-devel
;3.18.0-devel
;3.17.0-devel
;3.16.0-devel
;3.15.0-devel
;3.14.0-devel
;3.13.0-devel
;3.12.0-devel
;3.11.0-devel
;3.10.0-devel
;
Base image used by the other images:
base
.
You can build it by cloning the GitHub repo and runing:
docker build -t igorbrites/wine[:version] .
Or simply pulling ir from Docker Hub:
docker pull igorbrites/wine[:version]
First you have to create a volume to store all data that Wine usualy creates on your Home directory:
docker volume create wine
Then, you have to run the container passing the app you want to run:
# Needed to share the X11 server with the container
XSOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
touch $XAUTH
xauth nlist "$DISPLAY" | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
docker run -it \
--rm \
# The volume with the current folder to run the app
--volume="$(pwd):/home/wine/Apps" \
# The wine volume to store the entire home
--volume=wine:/home/wine \
# The volumes to share the X11 server
--volume=$XSOCK:$XSOCK:rw \
--volume=$XAUTH:$XAUTH:rw \
--env="XAUTHORITY=${XAUTH}" \
--env="DISPLAY" \
# The user inside the container to use
--user="wine" \
# The workdir to the current folder
--workdir=/home/wine/Apps \
--net host \
--name wine \
igorbrites/wine[:version] wine64 MyAwesomeApp.exe
Or, you can use the run
script on the repo, that does exactly this using the latest
version.
Once the app is installed, to run it is a little tricky. You can use ./run bash
to get inside the container ans check where your app was inatalled, and then run it with wine64
. Or, if you already know where it is inside the container, you can run it by ./run wine64 /the/full/path/to/file.exe
.