microsoft / microsoft/VFSForGit

gvfs mount failing inside Docker container (Windows Server Core 2019)

Open
#1,197 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
6.1k
Forks
474
Avg merge
2d 4h
Merged PRs (30d)
8

Description

I am trying to run GVFS inside a Docker container. The install succeeds fine but I am unable to mount any repository.

Dockerfile

FROM mcr.microsoft.com/windows/servercore:1809

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

# Install Git and GvFS
RUN mkdir C:\\Installer
WORKDIR C:/Installer
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
    Invoke-WebRequest $('https://github.com/microsoft/VFSForGit/releases/download/v1.0.19140.2/Git-2.20.1.vfs.1.1.104.g2ab7360-64-bit.exe') -OutFile 'GitSetup.exe' -UseBasicParsing ; 

RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
   Invoke-WebRequest $('https://github.com/microsoft/VFSForGit/releases/download/v1.0.19140.2/SetupGVFS.1.0.19140.2.exe') -OutFile 'GVFSSetup.exe' -UseBasicParsing ; 

ADD deployment/docker/git-worker-image/GitSetup.inf C:/Installer/GitSetup.inf
ADD deployment/docker/git-worker-image/GVFSSetup.inf C:/Installer/GVFSSetup.inf

RUN Start-Process -Wait -FilePath C:/Installer/GitSetup.exe -ArgumentList @('/VERYSILENT', '/LOADINF=GitSetup.inf', '/SP-', '/LOG=C:/Installer/setup-git.log', '/SUPPRESSMSGBOXES')
RUN Start-Process -Wait -FilePath C:/Installer/GVFSSetup.exe -ArgumentList @('/VERYSILENT', '/LOADINF=GVFSSetup.inf', '/SP-', '/LOG=C:/Installer/setup-gvfs.log', '/SUPPRESSMSGBOXES')

GVFSSetup.inf

[Setup]
Lang=english
Dir=C:\Program Files\GVFS
Group=(Default)
NoIcons=0
SetupType=full
Components=
Tasks=

GitSetup.inf

[Setup]
Lang=default
Dir=C:\Program Files\Git
Group=Git
NoIcons=0
SetupType=default
Components=
Tasks=
PathOption=Cmd
SSHOption=OpenSSH
CRLFOption=CRLFAlways

On trying to clone I get the following error:

Error: Failed to load ProjectedFSLib.Managed.dll. Ensure that ProjFS is installed and enabled

[2019-05-24 16:08:58 +05:30] Information {"Message":"TryGetIsInboxProjFSFinalAPI: Build number = 17763"}
[2019-05-24 16:09:05 +05:30] Warning {"Area":"ProjFSFilter","getOptionalFeatureResult.Output":"","getOptionalFeatureResu
lt.Errors":"","WarningMessage":"TryEnableProjFSOptionalFeature: Client-ProjFS optional feature is missing"}
[2019-05-24 16:09:05 +05:30] Error {"ErrorMessage":"TryEnablePrjFlt: Failed to install (or enable) PrjFlt"}
[2019-05-24 16:09:05 +05:30] IsNativeLibInstalled {"Area":"ProjFSFilter","system32Path":"C:\\Windows\\system32\\Projecte
dFSLib.dll","existsInSystem32":false,"gvfsAppDirectory":"C:\\Program Files\\GVFS","nonInboxNativeLibInstallPath":"C:\\Pr
ogram Files\\GVFS\\ProjectedFSLib.dll","packagedNativeLibPath":"C:\\Program Files\\GVFS\\ProjFS\\ProjectedFSLib.dll","ex
istsInAppDirectory":false}
[2019-05-24 16:09:05 +05:30] Error {"ErrorMessage":"TryEnablePrjFlt: Native ProjFS library is not installed, did not att
empt to copy library because prjflt service is not running"}
[2019-05-24 16:09:05 +05:30] Error {"ErrorMessage":"IsAutoLoggerEnabled: Failed to find current Start value setting"}
[2019-05-24 16:09:05 +05:30] Error {"ErrorMessage":"TryEnableAutoLogger: Failed to find AutoLogger Start value in regist
ry"}
[2019-05-24 16:09:05 +05:30] Error {"ErrorMessage":"TryEnablePrjFlt: Failed to enable prjflt AutoLogger"}
[2019-05-24 16:09:05 +05:30] TryEnablePrjFlt_Summary {"Area":"EnableAndAttachProjFSHandler","Initial_isPrjfltDriverInsta
lled":false,"Initial_isPrjfltServiceInstalled":false,"Initial_isPrjfltServiceRunning":false,"Initial_isNativeProjFSLibIn
stalled":false,"windowsBuildNumber":17763,"isInboxProjFSFinalAPI":true,"isProjFSFeatureAvailable":false,"Initial_isAutoL
oggerEnabled":false,"isPrjfltDriverInstalled":false,"isPrjfltServiceInstalled":false,"isPrjfltServiceRunning":false,"isN
ativeProjFSLibInstalled":false,"isAutoLoggerEnabled":false}
[2019-05-24 16:09:05 +05:30] EnsurePrjFltHealthy (Stop) {"DurationMs":7579}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Dockerfile and the GVFSSetup.inf and GitSetup.inf files, then review the reported ProjFS and prjflt errors for Windows Server Core build 17763. Reproduce the clone or mount attempt in the container and verify whether ProjFS is available and enabled; done means GVFS can mount a repository successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, powershell
Domain
devops, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.