GithubHelp home page GithubHelp logo

scottyhardy / docker-wine Goto Github PK

View Code? Open in Web Editor NEW
831.0 19.0 144.0 1.2 MB

Docker image that includes Wine and Winetricks for running Windows applications on Linux and macOS

License: MIT License

Shell 95.37% Dockerfile 4.63%
wine dockerfile macos linux unix-sockets pulseaudio remote-desktop xrdp xfce

docker-wine's People

Contributors

636stefan avatar ds17f avatar iuridiniz avatar jdehaan avatar rchildre3 avatar scottyhardy avatar ssb22 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-wine's Issues

Download mono and gecko in Dockerfile

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

ERROR: Cannot combine conflicting options --rdp and --nordp

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:

  1. wget https://raw.githubusercontent.com/scottyhardy/docker-wine/master/docker-wine -O docker-wine
  2. chmod +x docker-wine
  3. ./docker-wine --rdp
  4. See error 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):

  • OS: Centos 7
  • Browser N/A
  • Version N/A

Smartphone (please complete the following information):

  • Device: N/A
  • OS: N/A
  • Browser N/A
  • Version N/A

Additional context
Need to add NO_RDP="no" in the default values

Rename user 'wine' to 'wineuser' for clarity

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.

  • rename user wine in readme
  • rename user wine in dockerfile
  • rename user wine in docker-wine script
  • rename docker volume winehome to wineuserhome in readme, dockerfile and docker-wine script

Unable to use as basis for Dockerfiles as described in documentation

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:

wine-console.txt

Desktop (please complete the following information):

  • OS: Ubuntu Linux 18.04
  • Desktop: GNOME 3.12
  • Browser Chromium
  • Version 76.0.3809.100

Additional context
Able to run programs without a problem on the same machine by using docker-wine, i.e. docker-wine wine notepad.exe

Add RDP access

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.

Create wine-devel image

Master branch is using wine-stable 4.0 and would like to continue using stable version for latest tag in Docker Hub

  • create new branch wine-devel for releases
  • create new branch dev/wine-devel for dev commits
  • modify wine-devel and dev/wine-devel branch permissions to ensure they stay evergreen
  • latest version of wine-devel will be labelled just wine-devel on Docker Hub
  • for clear differentiation, use wine-devel- for tagging versions of the wine-devel branch

Access to host files from the docker-wine image

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.

Support for hardware acceleration

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:

  • define 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)
  • define 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)
  • Add some devices which are needed by the Nvidia driver

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)

Sound on macOS

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.

Error 1603 causing problems

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):

  • OS: macOS Catalina 10.15.4 (19E287)
  • Browser: Chrome...
  • Version: master fa5877c

Additional context
Been running in to this 1603 failure pretty repeatedly but not sure what's causing it.

Too slow?

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?

VNC server support

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!

Create window failing

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.

winetricks can't find winbind(d)

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.

Not running on ubuntu 20.04

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

Network access

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

No RDP image option

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.

Mac OS VNC example

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?

No audio from Wine

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:

  1. ./docker-wine winecfg
  2. Audio Tab

Expected behavior
pulseaudio is detected and shown in winecfg. Clicking Test Sound results in Sound.

Screenshots
Expected:
screenshot

Actual:
screenshot_1

Desktop (please complete the following information):

  • OS: Ubuntu
  • Version: 18.04

Upgrade base to Ubuntu 18.04

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

Graphics not working with wine user!

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

can we remove 32-bit support

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

Basic video test fails

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

Keeps asking for XQuartz to be installed

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:

  • OS: macOS Catalina (10.15.4)

Display errors with wine-devel

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):

  • OS: macOS Catalina 10.15.5

Add no sound option

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)

Last update prevents installing certain dlls

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?

Local Build fails with apt-get errors

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/ $(grep VERSION_CODENAME= /etc/os-release | cut -d= -f2) main" && dpkg --add-architecture i386 && apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y --install-recommends winehq-${WINE_BRANCH} && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100
[root@localhost docker-wine-master]#

Complete log is here
build_error.txt

How do you run a given .exe file?

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?

Use socat with UNIX sockets over UDP on macOS

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.

Support `RUN wineconsole ...` from within Dockerfile

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.

Unable to build locally

Describe the bug
I am try to build the image locally following the README instructions.

To Reproduce
Steps to reproduce the behavior:

  1. Go to docker-wine
  2. Run make
  3. The following error during the build occurs:
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):

  • OS: Ubuntu 18.04.4 LTS (4.15.0-91-generic)

X11 not working

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.