stable-diffusion-webui-docker
stable-diffusion-webui-docker copied to clipboard
/bin/bash: line 1: /docker/mount.sh: Permission denied on container startup
Building the container works. Starting the container fails with the following message:
stable-diffusion-webui-docker-model-1 | + /docker/mount.sh stable-diffusion-webui-docker-model-1 | /bin/bash: line 1: /docker/mount.sh: Permission denied
Steps to Reproduce
- docker compose build
- docker compose up --build
- [error...]
Hardware / Software:
- OS: Windows 11/WSL2
- Docker version
- GPU: [Nvidia 3090]
- Docker version: v20.10.17
Additional context Attempted to add a chmod +x /docker/mount.sh before the command is run in dockerfile, the command does execute but does not improve things. Docker seems to work otherwise.
I'm facing the same issue on an AWS EC2 Linux instance. Fixed after running chmod +x ./build/mount.sh
from outside the docker container.
I have directly updated the executable status in the git index.
@hughk Can you try again from latest master?
Working on a windows machine makes detecting these problems almost impossible.
I've forked to modify the Shell command in the build to use "//bin/bash" instead of "/bin/bash", which has resolved a similar error for me. On WSL the precedent "/" before the filepath indicates a *nix filepath. After that modification the build was successful for me.
what sort of black magic is this?
@MiccoHadje why is this necessary? could you please guide me to some sort of documentation that explains this behaviour?
The bash command is executed within the miniconda container, I would assume that the rules of WSL don't apply / matter anymore?
what sort of black magic is this?
Universal Naming Convention (UNC) is what I believe drives this 'trick'. Here's the Microsoft Docs page that talks about it. While UNC are used to connect to shares typically, it must map out https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats
As to why it was necessary...not real sure. I'm very new to WSL and Docker, so it is most likely user error. Regardless, it works for me :) It was something I saw as a solve for my particular issue on StackOverflow. Here's the link to the comment: https://stackoverflow.com/a/61737743
It appears that my system does not see bash at /bin/bash and kept throwing a 'command not found' error at the Shell call.
@MiccoHadje thanks! I will look deeper into it.
One question, did you install docker on windows or inside wsl? and did you run docker on powershell or inside wsl?
It appears that my system does not see bash at /bin/bash and kept throwing a 'command not found' error at the Shell call.
So the error was thrown at this line when building the container?
have directly updated the executable status in the git index.
@hughk Can you try again from latest master?
I have checked and it seems to have moved past this point. Will close when I have confirmed.
Thanks, Have confirmed that it is now working as supposed to on Ubuntu 22.04.01/WSL2
@MiccoHadje thanks! I will look deeper into it.
One question, did you install docker on windows or inside wsl? and did you run docker on powershell or inside wsl?
It appears that my system does not see bash at /bin/bash and kept throwing a 'command not found' error at the Shell call.
So the error was thrown at this line when building the container?
Yes, that is the line the error was thrown on. I installed Docker on Windows, and run Docker from Powershell.
@MiccoHadje Ok, I will update the FAQ, its weird that I can't reproduce this problem...
@hughk glad its working!