I have a legacy application that I'm trying to run under a Docker container. The problem is that 8.3 names appear to be disabled by default in the container, so in the Docker file I issue the following as the last command in the file: run fsutil.exe 8dot3name set C: 0
Next, I create a Docker image and then spin up a container using "docker run -it --rm cmd.exe" to open a command prompt. At the command prompt, a "fsutil.exe 8dot3name query C:" command returns:
The volume state is: 1 (8dot3 name creation is disabled). The registry state is: 2 (Per volume setting - the default). Based on the above settings, 8dot3 name creation is disabled on C:
Although running fsutil 8dot3name in the docker file ran successfully for image creation, the setting does not seem to take effect. If I substitute the fsutil call with "run reg add HKLM\System\CurrentControlSet\Control\FileSystem /t REG_DWORD /v NtfsDisable8dot3NameCreation /d 0 /f", re-build and re-run the container, I get:
C:>fsutil.exe 8dot3name query C: The volume state is: 1 (8dot3 name creation is disabled). The registry state is: 0 (Enable 8dot3 name creation on all volumes). Based on the above settings, 8dot3 name creation is enabled on C:
Unfortunately, the message appears to be wrong, because creating a long/spacey folder will not also create the 8.3 equivalent. The problem is the volume state is still set to '1'. Does any one know what command needs to be executed to modify the volume state setting? Is it a registry location? I know it can be changed, because if I execute the "fsutil.exe 8dot3name set C: 0" at the container command prompt, then it gets set to '0'.