devenv-container(1)
π devenv-container β the build/copy/run container command, bestie
okay so real talk: this is devenv container, from the General Commands Manual (section 1, the "you can just type this in your terminal" section πΈ). It builds containers, copies containers to a registry, and runs containers. That's the whole vibe. Docs live at https://devenv.sh/containers/ and yes you should go look at them.
β¨ SYNOPSIS β¨
devenv container [--user-config] [--from] [-o|--override-input]
[-O|--option] [-j|--max-jobs] [-u|--cores] [-s|--system] [-i|--impure]
[--no-impure] [--offline] [--nix-option] [--nix-debugger] [-c|--clean]
[-P|--profile] [--reload] [--no-reload] [--shell] [--eval-cache]
[--no-eval-cache] [--refresh-eval-cache] [--refresh-task-cache]
[--secretspec-provider] [--secretspec-profile] [--trace-to]
[-v|--verbose] [-q|--quiet] [--tui] [--no-tui] [-h|--help] <subcommands>
like, yes, that's a lot of flags. breathe. we'll get through them together π«Ά
π¦ DESCRIPTION π¦
Build, copy, or run a container. That's it, that's the whole thing. The full glow-up of docs is at https://devenv.sh/containers/ β go read it, iykyk.
π OPTIONS π
--user-config<USER_CONFIG> β bestie, use this user configuration file instead of the XDG default. main character config energy β¨
π INPUT OVERRIDES π
--from<FROM> β wheredevenv.nixcomes from. it can be a filesystem path (with apath:prefix) or a flake input reference. iconic either way.
Examples:
--from github:cachix/devenv
--from github:cachix/devenv?dir=examples/simple
--from path:/absolute/path/to/project
--from path:./relative/path
-o,--override-input<NAME> <URI> β override inputs indevenv.yaml. you're basically saying "no bestie, this is the input" π
Examples:
--override-input nixpkgs github:NixOS/nixpkgs/nixos-unstable
--override-input nixpkgs path:/path/to/local/nixpkgs
-O,--option<OPTION:TYPE> <VALUE> β override configuration options with typed values. important:OPTIONmust include a type, formatted as<attribute>:<type>. Supported types are:string,int,float,bool,path,pkg,pkgs.
List types (pkgs) append to existing values by default. Want to replace instead? add a ! suffix, like pkgs!. periodt.
Examples:
--option languages.rust.channel:string beta
--option services.postgres.enable:bool true
--option languages.python.version:string 3.10
--option packages:pkgs "ncdu git" (appends to packages)
--option packages:pkgs! "ncdu git" (replaces all packages)
π₯ NIX OPTIONS π₯
-j,--max-jobs<MAX_JOBS> β max number of Nix builds running at the same time. defaults to 1/4 of your available CPU cores (minimum 1, so it never hits zero, we love a safe default π).-u,--cores<CORES> β how many CPU cores each build gets. defaults to available cores divided by max-jobs (minimum 1).-s,--system<SYSTEM> β override the target system. defaults to the host system (e.g.aarch64-darwin,x86_64-linux). cross-compiling girlies rise π-i,--impureβ relax the hermeticity of the environment. living dangerously, love that for you.--no-impureβ force a hermetic environment, overriding whatever your config says. the responsible friend in the group chat π§--offlineβ disable substituters and treat all previously downloaded files as up-to-date. airplane mode but make it nix βοΈ--nix-option<NAME> <VALUE> β pass extra options to nix commands. these go straight to Nix via the--optionflag. seeman nix.conffor the full list of available options.
Examples:
--nix-option sandbox false
--nix-option keep-outputs true
--nix-option system x86_64-darwin
--nix-debuggerβ drop into the Nix debugger when things fail. grab a snack, you're gonna be here a while π
π SHELL OPTIONS π
-c,--clean[<CLEAN>...] β ignore existing environment variables when entering the shell. you can pass a list of comma-separated environment variables to let through (the chosen ones π).-P,--profile<PROFILES> β activate one or more profiles defined indevenv.nix. profiles let you define different configurations that get merged with your base configuration. see https://devenv.sh/profiles for more.
Examples:
--profile python-3.14
--profile backend --profile fast-startup
--reloadβ enable auto-reload when config files change. this is the default btw β¨--no-reloadβ disable auto-reload when config files change.--shell<SHELL_TYPE> β which shell to use for interactive sessions. options:bash,zsh,fish,nu.
Possible values:
bashzshfishnu
β CACHE OPTIONS β
--eval-cacheβ enable caching of Nix evaluation results. default, and honestly thank god for it π--no-eval-cacheβ disable caching of Nix evaluation results. you're choosing violence, respect.--refresh-eval-cacheβ force a refresh of the Nix evaluation cache.--refresh-task-cacheβ force a refresh of the task cache.
π SECRETSPEC OPTIONS π
--secretspec-provider<SECRETSPEC_PROVIDER> β override the secretspec provider. secrets stay secret, no cap π--secretspec-profile<SECRETSPEC_PROFILE> β override the secretspec profile.
π¦ TRACING OPTIONS π¦
--trace-to<TRACE_TO> β enable tracing and set the output destination(s). can be repeated for multiple outputs.
Syntax: [format:]destination
Examples:
--trace-to stderr # json to stderr
--trace-to pretty:stderr # pretty format to stderr
--trace-to json:file:/tmp/trace.json # JSON to file
--trace-to otlp-grpc # OTLP gRPC to default endpoint
--trace-to otlp-grpc:http://collector:4317 # OTLP gRPC to custom endpoint
Multiple outputs:
--trace-to pretty:stderr --trace-to json:file:/tmp/t.json
Destinations: stdout, stderr, file:<path>, http(s)://<host>:<port> Formats: json (default), pretty, full, otlp-grpc, otlp-http-protobuf, otlp-http-json
When the format is omitted, it defaults to json. Tracing is disabled by default.
environment girly pop:[env: DEVENV_TRACE_TO=](comma-separated) and[env: DEVENV_TRACE_DEFAULT_TO=](comma-separated, used only when no explicit tracing is configured; set it to an empty string to suppress). lowkey important, don't skip π
π GLOBAL OPTIONS π
-v,--verboseβ enable additional debug logs. the "i want to see everything" era.-q,--quietβ silence all logs. peace and quiet, we love her πΈ--tui<TUI> β enable the interactive terminal interface (this is the default when interactive).
Possible values:
truefalse
--no-tuiβ disable the interactive terminal interface.-h,--helpβ print help (see a summary with-h). yes, that's slightly unhinged, but that's what it says π«Ά
π SUBCOMMANDS π
devenv-container-build(1)β build a container. go off, build queen π₯devenv-container-copy(1)β copy a container to a registry. send it to the group chat.devenv-container-run(1)β run a container. the actual main character moment β¨
k bye bestie, go container-ify something π
β that was container, page devenv-container(1) in the General Commands Manual, and this diva's files live in the container section, dated the same as always πβ¨π¦
π¦ where this page comes from
- nixpkgs unstable: devenv 2.4.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms