-
Notifications
You must be signed in to change notification settings - Fork 291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cifs mount argument rfc, add noserverino #15
Comments
@Sebas- Thanks for the report. This works fine with the default php images:
and also with 32bit debian:
|
Thanks for the response. Looks like i've got an interesting issue then. The php version in your test is 5.6 and 7 so those are not the same, but when I added the official debian php 5.3 build (from debian 7), it did not show the issue. My container has a manually compiled version (on the 32bit/debian container) build, and that one does show the issue (. I'm a little bit puzzled to why that is. As far as I can tell it should work, but it looks like debian patched their php5.3 build with something that fixes this issue.
(docker run 32bit/debian with volume mount test directory to /mnt) Since my added mount option fixes the problem for me right now, and my team can work with this, there is no hurry to find the reason (have to do some real work ;) ). My feature request still stands, adding the mount option, or even creating an advanced option so users can set their own (though I can imagine you might not want this). As long as de Docker for Windows keeps working the way it does I'm happy, and when I finally gets open sourced and I still have this issue I'll just patch that version and let everybody that needs it install the patched version :) Sebas |
Thanks. we are looking into the suggested CIFS mount option |
@Sebas- we took another look at the option and it looks like it might break hardlinks semantics (e.g: http://www.spinics.net/lists/linux-cifs/msg10477.html). Since your example seem to work with some standard 32bit images (like PHP on 32bit debian) and you ahve a work-around. I'm closing this issue. Thanks, for the issue report and the nice and simple repro. It made it very easy to test for us. |
Oke, thanks for info. |
Hi, is it possible to have your workaround? |
@cedseat sure, but keep in mind this is not officially supported in any way or form :) |
@cedseat you can verify if the remounting works like this: ``
The remount tool might need a "Run as administrator" on some windows installations. |
Thanks! Where did you found the *.cs source codes? |
Nowhere, look at the top of the cs files. Just lucky that the application is so well set up (code wise), they are doing a good job with it, and I believe that it will be sourced eventually. |
Excellent 😉 |
@sebas it will work if you compile with |
@cedseat what problem are you encountering with the default mount options? Is it also related to custom-build PHP, or something else? |
@justincormack Looks like that works, updating the app container tomorrow, thanks! |
The problem is here : moby/moby#24837 |
@cedseat request by docker, github/docker does not allow decompiled code to be put in a public repository. assuming you made local checkout or downloaded the zip? |
@Sebas- This is still an active issue for me, are you able to PM or email the source? |
@VectorAlpha sorry for the late reply, but just take a dotnet decompiler (dotpeek) and recompile it yourself (hoping they have not put an obfuscator over the current compile since docker for windows is clearly not meant to be open source since it's still not published). |
Closed issues are locked after 30 days of inactivity. If you have found a problem that seems similar to this, please open a new issue. Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows. |
Expected behavior
A php application inside a i386 container should be able to recognize directories when using calls like 'stat' and 'is_dir' on mounted volumes.
Actual behavior
'stat' and 'is_dir' return false when executing the command on a mount volume path.
Information
The following stackoverflow post explains the issue:
http://stackoverflow.com/questions/26718203/php-file-directory-stat-related-functions-do-not-work-on-mounted-cifs
I have now created a remount tool (simple console app) as a temporary solution, that unmounts, and mounts the drives again with the added mount option.
In the method "CifsOptions" (Cifs.cs), I have added stringList.Add("noserverino"); just before the return string join.
Then simply do the same thing the app does, load settings, retrieve credentials, loop the SharedDrives setting, and umount+mount the drive.
I don't think it does any harm if the option is added in the application, but I could be wrong.
Perhaps it would be nice to make this part of some sort of advanced options?
If the option can not be added, and the advanced option thing is also not possible I have to wait until Docker for windows gets a proper source release, patching the dll's just for this seems overkill to me :)
Steps to reproduce the behavior
Host system: Windows 10 Pro x64 (issue is probably only on x64 systems, not sure)
Create a docker container based on 32bit/debian
Install PHP (5.3)
Run the container and mount for example your c drive to /mnt
in the container, execute this bit of code:
The text was updated successfully, but these errors were encountered: