Pulling features from ghcr hanges without access token in creds store
Hi,
It took me forever to figure out why my "open in dev container" commands were hanging every time it needed to pull an image from a repository to use a feature, usually ghcr from what i noticed. Weirdly enough, running docker-credential-desktop get would hang in both Powershell and WSL. and I noticed this was the step that the boot sequence would usually hang on. I got around this by running docker login https://ghcro.io --username <myusername> and using a classic personal access token. now the images seem to be pulling fine, but there was no indication this was causing the issue, and took a lot of digging around and figuring out what was happening in the credsStore config, etc.
Not sure if this is a Windows/WSL issue only but it seems like OSX users were running into a lot of credentials issues in open issues during my research.
I hope this is helpful feedback.
Hi 👋
This is definitely a helpful feedback, thanks for opening the issue!
It took me forever to figure out why my "open in dev container" commands were hanging every time
To me, it looks like you are using the Dev containers' extension commands? which uses the devcontainers/cli to build the dev container. Hence, transferring this issue to the corresponding repository.
output.write(
Could not resolve Feature manifest for '${userFeatureId}'. If necessary, provide registry credentials with 'docker login <registry>'., LogLevel.Warning);
I agree, that we should try to bubble up error details in the logs. However, we already have https://github.com/devcontainers/cli/blob/main/src/spec-configuration/containerFeaturesConfiguration.ts#L772 ^, I wonder why that wasn't logged. Also, as a last resort, we try to anonymously pull the artifacts, unless they are private in your case?
@schlich I know the issue is now resolved for you (which is great ❇️ ), however, by any chance do you logs (for when things were failing)?
Next time it happens, feel free to share the logs with trace logging enabled. You can enable it from User Settings 👇