scottyhardy / docker-wine Goto Github PK
View Code? Open in Web Editor NEWDocker image that includes Wine and Winetricks for running Windows applications on Linux and macOS
License: MIT License
Docker image that includes Wine and Winetricks for running Windows applications on Linux and macOS
License: MIT License
These were removed in latest overhaul but would like these to be reintroduced so users don’t need to download on first run. This time, need to automatically determine latest version rather than stating fixed version as a build arg
Describe the bug
When running ./docker-wine --rdp
I get error ERROR: Cannot combine conflicting options --rdp and --nordp
The problem is that there is no default value for NO_RDP variable
To Reproduce
Steps to reproduce the behavior:
wget https://raw.githubusercontent.com/scottyhardy/docker-wine/master/docker-wine -O docker-wine
chmod +x docker-wine
./docker-wine --rdp
ERROR: Cannot combine conflicting options --rdp and --nordp
Expected behavior
Docker container with RDP enabled should be started.
Screenshots
N/A
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Need to add NO_RDP="no" in the default values
Required for winetricks
All references to the user 'wine' should be changed to 'wineuser' as it's confusing if the term wine relates to the user or the program and always needs clarification in documentation.
--volume="~/.Xauthority:/home/wine/.Xauthority"
--volume="/tmp/.X11-unix:/tmp/.X11-unix"
Describe the bug
Able to run Wine programs using the docker-wine script, but can't make my own Dockerfile to add new programs to run under Wine.
To Reproduce
Using the following test Dockerfile, as given on Docker Hub documentation:
FROM scottyhardy/docker-wine:latest
ENTRYPOINT ["/usr/bin/entrypoint"]
CMD ["wine", "notepad.exe"]
Build image using e.g. docker build -t docker-wine-test .
docker run
See a long list of errors, which seem to indicate that there's no X server running. See below for detailed console log.
Expected behavior
Should see Notepad, as when I run this with docker-wine
Screenshots
Not a screenshot, but the console dump from the failure:
Desktop (please complete the following information):
Additional context
Able to run programs without a problem on the same machine by using docker-wine, i.e. docker-wine wine notepad.exe
I've had a user ask about how you could VNC onto the container and after having a look around, I've seen that using xrdp is a pretty good solution that others have used that also works with sound.
RDP clients are generally easier to set up and use and are available on pretty much any platform so I think this may be a solution to the poor performance and lack of sound on macOS.
Master branch is using wine-stable 4.0 and would like to continue using stable version for latest tag in Docker Hub
Originally posted by @ds17f in #80 (comment)
If pulseaudio runs within the container (with a dummy sink.so) I suspect it will solve this issue
Hi,
First of all I want to thank you for this contribution, it is really useful.
I want to ask for guidance on how to properly share data with host. Let's say you want to run notepad (docker-wine wine notepad) and want to save your notes in a host directories rather than in the volume, which is not accessible from the host. This can be useful for other types of programs in order to manipulate user files. Typically what I would do with other Docker images is to mount a volume (e.g. --volume=/home/user/my_data:/data
) and then access to that volume, but in this case it does not work due to user permissions since the wineuser can't access that directory. An obvious solution is to give proper permissions to that directory so that it can write in it, but I would like to ask you if there is a more elegant and general solution.
Regards,
Hugo.
needs testing first
I don't have the hardware to test with, but I think this would be a pretty nifty feature that wouldn't be too difficult to add since all changes are only in the docker run
command.
Here's a post from @gluckzhang for some inspiration:
Just for your information, this is my argument list:
docker run -it \
--rm \
--env="DISPLAY" \
--env="LD_LIBRARY_PATH=/usr/lib32/nvidia-410" \
--env="WINEARCH=win32" \
--env="PULSE_SERVER=/tmp/pulse-socket" \
--volume="${XAUTHORITY:-${HOME}/.Xauthority}:/root/.Xauthority:ro" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix" \
--volume="/tmp/pulse-socket:/tmp/pulse-socket" \
--volume="/usr/lib32/nvidia-410:/usr/lib32/nvidia-410" \
--volume="/etc/localtime:/etc/localtime:ro" \
--volume="winehome:/home/wineuser" \
--device=/dev/nvidiactl \
--device=/dev/nvidia-uvm \
--device=/dev/nvidia0 \
--hostname="$(hostname)" \
--name="wine" \
$DOCKER_IMAGE "$@"
If someone is using an Nvidia driver and PulseAudio in Ubuntu 16.04, probably he needs some more arguments to make complex games work. Key tricks:
LD_LIBRARY_PATH
env with path to the nvidia driver (otherwise you may fail to support OpenGL, or errors like libGL error: unable to load driver
)PULSE_SERVER
env with path to the PulseAudio socket (otherwise wine may fail to detect audio device, and maybe even worse: a "Couldn't initialize DirectSound" error)I am not sure whether these arguments are essential for other OSes. But when I tried to run WinKawaks in the container, I have to setup everything like the above. Hopefully this will give inspirations when others face similar issues.
Cheers!
Originally posted by @gluckzhang in #44 (comment)
Found some instructions on stack overflow but didn't work using PULSE_SERVER set to local IP and pulse cookie. Jess Frazelle's post says to use /dev/snd which I haven't tried yet.
Describe the bug
Notepad fails to start
To Reproduce
~/Documents/docker-wine master
❯ ./docker-wine wine nodepad
WARNING: Adding localhost to authorized xhost clients
127.0.0.1 being added to access control list
latest: Pulling from scottyhardy/docker-wine
a4a2a29f9ba4: Already exists
127c9761dcba: Already exists
d13bf203e905: Already exists
4039240d2e0b: Already exists
5d07b2d7b241: Pull complete
ef5bd0f71098: Pull complete
fedbac49e6b6: Pull complete
50cbc4230e2a: Pull complete
bf42cddac205: Pull complete
652358c55532: Pull complete
c458f9b06186: Pull complete
826cdd458b40: Pull complete
f445f081a747: Pull complete
a904c7197f90: Pull complete
10b48e7b8e78: Pull complete
Digest: sha256:c16c8ed363594986347422be626bd0bca8e2693098b98add4d854b8c6e86da51
Status: Downloaded newer image for scottyhardy/docker-wine:latest
docker.io/scottyhardy/docker-wine:latest
INFO: Creating Docker volume container 'winehome'...
winehome
wine: created the configuration directory '/home/wineuser/.wine'
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0014:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0014:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0014:err:ole:get_local_server_stream Failed: 80004002
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0012:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0012:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0012:err:ole:get_local_server_stream Failed: 80004002
0017:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0017:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0019:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0019:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0019:err:mscoree:LoadLibraryShim error reading registry key for installroot
0019:err:mscoree:LoadLibraryShim error reading registry key for installroot
0019:err:mscoree:LoadLibraryShim error reading registry key for installroot
0019:err:mscoree:LoadLibraryShim error reading registry key for installroot
0019:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0019:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0017:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0017:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001f:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
001f:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
001f:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001f:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0010:fixme:dwmapi:DwmIsCompositionEnabled 0000000006970434
0021:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x28a306d, context 0x5440b0, init_notify 0, handle 0x779fa00): stub
0010:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
003d:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
003d:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
003d:err:msi:ACTION_InstallFiles compressed file wasn't installed (L"browser!blocklist.xml")
003d:err:msi:execute_script Execution of script 0 halted; action L"InstallFiles" returned 1603
003d:err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603
003d:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
003d:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
003d:err:appwizcpl:install_file MsiInstallProduct failed: 1603
Could not find Wine Gecko. HTML rendering will be disabled.
wine: configuration in L"/home/wineuser/.wine" has been updated.
0009:err:module:__wine_process_init L"C:\\windows\\system32\\nodepad.exe" not found
Desktop (please complete the following information):
Additional context
Been running in to this 1603 failure pretty repeatedly but not sure what's causing it.
I just want to be able to call into a win32 .exe that loads a .dll from Mac/Linux through Docker. No X11 or any of that (just command line program)
FROM scottyhardy/docker-wine:latest
COPY program.exe .
ENTRYPOINT ["wine", "program.exe", "my-dll.dll", "arg1", "arg2"]
$ time docker run -it c2e34e3ab4a7
wine: created the configuration directory '/root/.wine'
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0012:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0012:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0012:err:ole:get_local_server_stream Failed: 80004002
000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0014:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0014:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0014:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0014:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0014:err:ole:apartment_createwindowifneeded CreateWindow failed with error 14007
0014:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x800736b7
0014:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 800736b7
0014:err:ole:get_local_server_stream Failed: 800736b7
0010:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0010:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0016:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0016:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0018:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0018:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0018:err:mscoree:LoadLibraryShim error reading registry key for installroot
0018:err:mscoree:LoadLibraryShim error reading registry key for installroot
0018:err:mscoree:LoadLibraryShim error reading registry key for installroot
0018:err:mscoree:LoadLibraryShim error reading registry key for installroot
0018:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0018:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0016:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0016:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001e:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
001e:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
001e:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001e:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0010:fixme:dwmapi:DwmIsCompositionEnabled 0000000006970434
0020:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x28a306d, context 0x5440b0, init_notify 0, handle 0x779fa00): stub
0010:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
003a:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
003a:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
003c:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
003c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
003c:err:msi:ACTION_InstallFiles compressed file wasn't installed (L"browser!blocklist.xml")
003c:err:msi:execute_script Execution of script 0 halted; action L"InstallFiles" returned 1603
003c:err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603
003c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
003c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
003c:err:appwizcpl:install_file MsiInstallProduct failed: 1603
Could not find Wine Gecko. HTML rendering will be disabled.
wine: configuration in L"/root/.wine" has been updated.
1cd58af6
real 0m48.287s
user 0m0.059s
sys 0m0.034s
Takes 48 seconds when the program itself running should take less than 0.1s natively. Any command line options I can pass to skip X11/Gecko/etc. checks to speed it up?
Need some way to add sound
Thanks for a already great container. From what I understand, RDP does not support sharing screen with other clients. On the other hand VNC supports that and it would be great if the container also "natively" supported hosting a VNC server. It may also be a better alternative to RDP client for Linux users. I could install it as a additional layer, but I believe that it could be a useful feature for other users.
Thanks!
Hello,
When i try to run the notepad application, i get the below error :
wine /home/wineuser/.wine/drive_c/windows/syswow64/notepad.exe
0009:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0009:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
Dockerfile installs winbind
package correctly, but the winbindd
is not added to PATH
environmental variable. So if you for example try to install winetricks adobe_diged4
the script complains about winbindd
. If you modify PATH
and add /usr/sbin
, it works.
Fresh installed ubuntu 20.04
docker run -it \
--rm \
--env="DISPLAY" \
--volume="${XAUTHORITY:-${HOME}/.Xauthority}:/root/.Xauthority:ro" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix" \
--volume="winehome:/home/wineuser" \
--hostname="$(hostname)" \
--name="wine" \
scottyhardy/docker-wine wine notepad
result:
docker run -it \
--rm \
--env="DISPLAY" \
--volume=":/root/.Xauthority:ro" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix" \
--volume="winehome:/home/wineuser" \
--hostname="" \
--name="wine" \
scottyhardy/docker-wine wine notepad
No protocol specified
0010:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0010:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0010:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0010:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0010:err:ole:get_local_server_stream Failed: 80004002
0009:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0009:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
make: *** [Makefile:5: run] Fehler 1
Hi there,
I want to initialize the Docker container with the same network as the Host machine (using the active VPN network).
Then, my Windows programs will be able to use this network.
It appears the docker-wine container doesn't have network configured. Is that true?
I tried to edit the docker-wine
script and put a --network=host
there. Also I tried to install ping
and ping www.google.com
but no success.
Is there an option to fix that without changing the script? Or any workaround for the moment?
Thanks in advance
The current image is getting quite large - currently around 1GB. A lot of the bloat comes from RDP and associated GUI and it quite likely isn’t required in many use cases. It’s not been a complaint so I’m still going to use an image that includes RDP by default, but I want to have a --nordp option for users who don’t need RDP and who also prefer a smaller image without the additional bloat.
From the README:
There's a few different ways this problem can be solved, but essentially it comes down to using TCP sockets or a remote desktop protocol such as VNC.
How would you achieve working display through VNC on Mac OS?
Describe the bug
When loading ./docker-wine without using the --as-root flag, the audio in wine is not detected. I can run ./docker-wine pacat -vv /dev/urandom
without issue so the link between Host and Docker pulse is fine, the issue is that Wine isn't detecting pulseaudio.
To Reproduce
Steps to reproduce the behavior:
./docker-wine winecfg
Expected behavior
pulseaudio is detected and shown in winecfg. Clicking Test Sound results in Sound.
Desktop (please complete the following information):
Using Ubuntu 18.04 for my OS so would prefer containers to do the same... Alpine would probably be better size-wise but not sure of wine compatibility with other OSes
Oops - so, it seems like you either need to use the same uid as the current user or log in as root so you can use the .Xauthority magic cookie. So, easiest solution would be to reintroduce the entrypoint.sh script to allow user and permissions to be set up correctly
Something I’ve wanted to do for a while. X11 performance is currently pretty crap using X11 over TCP to Xquartz but still might be useful to someone.
Pretty good example here that I want to try out: https://devops.datenkollektiv.de/running-a-docker-soundbox-on-mac.html
The dpkg --add-architecture i386
line in Dockerfile
significantly increases build time and size as it pulls down 32-bit versions of all packages... Need to test if wine still functions ok without it
hey there, i can't seem to get the image or script to work. it pulls the image fine, and running the script without arguments gives a bash shell as expected, but running the suggested troubleshooting command fails:
$ docker-wine wine notepad
latest: Pulling from scottyhardy/docker-wine
Digest: sha256:59aedd84889b55825008e084e8b17752166e266760522e21a800c4c6558415d7
Status: Image is up to date for scottyhardy/docker-wine:latest
INFO: Using existing Docker volume container 'winehome'...
No protocol specified
0010:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0010:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0010:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0010:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0010:err:ole:get_local_server_stream Failed: 80004002
0009:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0009:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
okay, not sure what any of that means -- let's check $DISPLAY
:
$ echo $DISPLAY
:0
seems fine to me?
as a test, let's delete the winehome
volume just in case:
$ docker volume rm winehome
winehome
$ docker-wine wine notepad
latest: Pulling from scottyhardy/docker-wine
Digest: sha256:59aedd84889b55825008e084e8b17752166e266760522e21a800c4c6558415d7
Status: Image is up to date for scottyhardy/docker-wine:latest
INFO: Creating Docker volume container 'winehome'...
winehome
wine: created the configuration directory '/home/wineuser/.wine'
0009:err:file:init_redirects cannot open L"C:\\windows" (c000000f)
No protocol specified
No protocol specified
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0012:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0012:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0012:err:ole:get_local_server_stream Failed: 80004002
0014:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0014:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0014:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0010:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0010:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0014:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0014:err:ole:apartment_createwindowifneeded CreateWindow failed with error 14007
0014:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x800736b7
0014:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 800736b7
0014:err:ole:get_local_server_stream Failed: 800736b7
000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0016:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0016:err:mscoree:LoadLibraryShim error reading registry key for installroot
0018:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0018:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0016:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0016:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001a:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
001a:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001a:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0010:fixme:dwmapi:DwmIsCompositionEnabled 0x6dbd1518
001c:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x69ebd3de, context 0x8565c0, init_notify 0, handle 0x114fa10): stub
0036:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0036:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0038:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0038:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0038:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0036:fixme:dwmapi:DwmIsCompositionEnabled 0x6d5d3018
003a:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x6a0cb608, context 0x8d88c8, init_notify 0, handle 0x111fc88): stub
wine: configuration in '/home/wineuser/.wine' has been updated.
0009:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0009:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
that seems worse, not better!
this is on ubuntu 16.04. here's some additional output in case it helps diagnose this:
$ uname -a
Linux tekkon 4.15.0-51-generic #55~16.04.1-Ubuntu SMP Thu May 16 09:24:37 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ docker version
Client:
Version: 18.09.6
API version: 1.39
Go version: go1.10.8
Git commit: 481bc77
Built: Sat May 4 02:35:27 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.6
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 481bc77
Built: Sat May 4 01:59:36 2019
OS/Arch: linux/amd64
Experimental: false
As per Dockerfile best practices ADD command should not be used unless leveraging it's tar auto-extraction capability. wget
is installed anyway for winetricks
so no extra dependencies required.
Describe the bug
Docker Wine keeps asking for XQuartz to be installed, even if it has already be done.
To Reproduce
➜ curl https://raw.githubusercontent.com/scottyhardy/docker-wine/master/docker-wine -o docker-wine
➜ chmod +x docker-wine
➜ ./docker-wine
XQuartz needs to be installed for X11 forwarding to operate. If necessary, Homebrew will also be installed to perform the installation of XQuartz.
Do you want to continue? [y/N] Y
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 3 taps (homebrew/cask-versions, homebrew/core and homebrew/cask).
==> New Formulae
==> Updated Formulae
==> Deleted Casks
==> Downloading https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.11.dmg
==> Verifying SHA-256 checksum for Cask 'xquartz'.
==> Installing Cask xquartz
==> Running installer for xquartz; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Password:
installer: Package name is XQuartz 2.7.11
installer: Installing at base path /
installer: The install was successful.
🍺 xquartz was successfully installed!
➜ ./docker-wine
XQuartz needs to be installed for X11 forwarding to operate. If necessary, Homebrew will also be installed to perform the installation of XQuartz.
Do you want to continue? [y/N] Y
Updating Homebrew...
Warning: Cask 'xquartz' is already installed.
To re-install xquartz, run:
brew cask reinstall xquartz
Desktop:
Hi @scottyhardy ,
I have another query.
How do we build a docker image with pre-installed windows software? Is there a way to do this via Dockerfile?
Thanks
Originally posted by @ggkunka in #89 (comment)
Describe the bug
When trying to use the wine-devel branch of wine I am getting error messages regarding display drivers and Vulkan
To Reproduce
Steps to reproduce the behavior:
Clean up any existing winehome
docker volume rm winehome
Attempt to start notepad using wine-devel image:
./docker-wine --tag=wine-devel wine notepad
Output:
wine-devel: Pulling from scottyhardy/docker-wine
Digest: sha256:af2094864bcf5b8c9a0a5ceeb0df1016d03c808725929a4963d9491c46e36532
Status: Image is up to date for scottyhardy/docker-wine:wine-devel
docker.io/scottyhardy/docker-wine:wine-devel
INFO: Creating Docker volume container 'winehome'...
winehome
wine: created the configuration directory '/home/wineuser/.wine'
0024:err:environ:run_wineboot boot event wait timed out
002c:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
002c:err:winediag:nodrv_CreateWindow The explorer process failed to start.
0040:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0040:err:winediag:nodrv_CreateWindow The explorer process failed to start.
0024:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0024:err:winediag:nodrv_CreateWindow The explorer process failed to start.
Expected behavior
Should display the notepad as per normal - no issues when using wine-stable
Desktop (please complete the following information):
Entrypoint file currently uses su to run as the wine user. Docker best practices say to use exec gosu
:
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
Currently no way to disable sound or prevent creation of pulseaudio UNIX socket on Linux, so let’s add an option to do that (also applies to macOS and RDP)
I have used the image couple of months ago to run a Windows program which required some DLL and fonts that I had to install through winetricks. It went fine at that time but for some issues, the image crashed and I had to create a new volume and redo the installation. This time when I tried with the new updated image I was not able to install the dependencies, I got a winetricks warning regarding the wine prefix and architecture:
_
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
_
which I changed to 32 bit hoping it would fix the issue. However, every time I try to install the dlls (mdac 28 , or 27) I get the following message:
Extracting file failed. It is most likely caused by low memory or corrupted Cabinet file.
This error is due to running mdac_typ.exe. I am curious to know what changes were made to the image to help me find the issue and fix it?
I assume Wine is more compatible with Gnome Desktop as it is the sort of best option for Ubuntu
Hi @scottyhardy , First of all, I would like to thank you for this wonderful contribution.
I'm trying to build the image and facing the below error. Could you please help me out here?
Reading package lists...
E: The repository 'https://dl.winehq.org/wine-builds/ubuntu focal Release' does not have a Release file.
The command '/bin/sh -c wget -nv -O- https://dl.winehq.org/wine-builds/winehq.key | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - && apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu/
[root@localhost docker-wine-master]#
Complete log is here
build_error.txt
Sorry - I'm a bit of a docker noob.
If I have a file on my mac ~/Downloads/run.exe
, is there an easy way execute this file using docker-wine?
I’ve seen people trying to use socat
on macOS with Xquartz but only on the host machine and getting the same poor performance when you run X11 over TCP directly to Xquartz with network connections enabled. I want to try using socat
both within the container and on the Mac with UDP connection if possible to see if there’s any performance gain. Either way, it’ll provide a general use case for sharing any type of UNIX socket “invisibly” between the OS in a docker container and macOS.
I am doing something really gross. I have .DLLs
that I want to call into from node.js
.
FROM scottyhardy/docker-wine:latest
WORKDIR /app
# copy source
COPY server.js .
COPY package.json .
COPY package-lock.json .
# copy executable
COPY seed-key.exe .
COPY library.dll .
# copy win32 node
COPY node-v12.18.3-win-x86 node-v12.18.3-win-x86
# install modules
RUN wineconsole --backend=curses /app/node-v12.18.3-win-x86/node.exe /app/node-v12.18.3-win-x86/node_modules/npm/bin/npm-cli.js install
then in node.js
const express = require('express')
const execa = require('execa')
const cors = require('cors')
const app = express()
app.use(express.json())
app.post('/security-access', async (req, res) => {
const { dll, level, seed } = req.body
const { stdout } = await execa('seed-key.exe', [dll, level, seed])
res.send({
key: stdout.trim()
})
})
app.listen(process.env.PORT || 3000, () => console.log('Listening...'))
wineconsole errors out hard because it is expecting some kind of... pipe or TTY or something and in the docker build
context, that isn't possible (no stdin)
What do you recommend?
Ideally I'd like to add ENTRYPOINT ["wineconsole", "--backend=curses", "/app/node-v12.18.3-win-x86/node.exe", "server.js"]
at the end too but it has a similar problem.
Improve README.md documentation by actually running a spellcheck over it
Requires the following:
Describe the bug
I am try to build the image locally following the README instructions.
To Reproduce
Steps to reproduce the behavior:
docker-wine
make
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
winehq-stable : Depends: wine-stable (= 4.0.1~bionic)
E: Unable to correct problems, you have held broken packages.
The command '/bin/sh -c wget https://dl.winehq.org/wine-builds/winehq.key && apt-key add winehq.key && apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main" && dpkg --add-architecture i386 && apt-get update && apt-get install -y --install-recommends winehq-${WINEBRANCH}="${WINE_VER}" && rm -rf /var/lib/apt/lists/* && rm winehq.key' returned a non-zero code: 100
Makefile:7: recipe for target 'build' failed
make: *** [build] Error 100
Desktop (please complete the following information):
Using Ubuntu 18.04 and latest version of docker ce 18.09.5 - .Xauthority does not appear to be copied into wine user's home
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.