support DEVBOX_CACHE mirror for nixpkgs tarballs #2780
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
support DEVBOX_CACHE mirror for nixpkgs tarballs
Problem
Devbox currently fetches nixpkgs tarballs directly from GitHub.
In environments where GitHub is blocked,
devbox shellfails to fetch required tarballs, breaking reproducibility.Solution
DEVBOX_CACHEenvironment variable ingetNixpkgsInfo.DEVBOX_CACHEis set, bothURLandTarURLpoint to the local/internal mirror instead of GitHub.DEVBOX_CACHEis not set, Devbox falls back to GitHub as before.Testing
Place the nixpkgs tarballs in the archive folder:
Set
DEVBOX_CACHEto point to the mirror:Start a Python HTTP server to serve the mirror:
Create
devbox.jsonfor testing:{ "packages": [ "github:NixOS/nixpkgs/871b9fd269ff6246794583ce4ee1031e1da71895#zulu21" ], "nixpkgs": { "commit": "871b9fd269ff6246794583ce4ee1031e1da71895" } }Run Devbox shell:
Verify that the tarball is fetched from the local mirror.
Example server logs:
Debug logs in Devbox confirm that both
URLandTarURLpoint to the local mirror whenDEVBOX_CACHEis set.