dockerhub 上的 nix 镜像的 Nix 配置在哪里?
Where is the Nix configuration located for the nix image on dockerhub?
根据 https://chris-martin.org/2015/installing-nixos 存在一个 /etc/nixos/configuration.nix
文件。
我正在使用来自 https://hub.docker.com/r/nixos/nix/ 和 运行
的 docker 容器
find . -name "configuration.nix"
在容器内 returns 没有结果。
此配置位于何处?
如果由于某种原因它不存在或找不到它,您可以将构建系统所需的一切作为参数传递给 nixos-rebuild:
git clone --branch release-17.03 https://github.com/nixos/nixpkgs $HOME/nixpkgs
mkdir -p $HOME/nix-config
nixos-generate-config --dir $HOME/nix-config
nixos-install -I nixos-config=$HOME/nix-config/configuration.nix -I nixpkgs=$HOME/nixpkgs
无论如何我更喜欢这样做,因为它允许我使用我存储在个人 git 存储库中的配置的 nixpkgs 和 nix 文件。
echo $NIX_PATH
应该告诉你。查找 nixos-config
.
的定义
提到的docker容器不包含NixOS系统。引用评论:
It is basically Alpine linux distibution, with apk package manager and nix-env on top of it.
所以,没有 NixOS,没有 configuration.nix
。
(如果 OP 发表了评论,我不会感到惊讶☻)
如果我们谈论的是 NixOS 的容器故事,那么它在撰写本文时还处于起步阶段。
nix 镜像与 Nixos 项目没有直接关系。
你可以用 nix 容器做的事情是创建一个 nix-shell 环境:
docker run -ti nixos/nix
cb84c4b79d05:/# echo '{ pkgs ? import <nixpkgs> {} }:
> pkgs.mkShell {
> buildInputs = [ pkgs.python pkgs.php ];
> }
> ' > shell.nix
cb84c4b79d05:/# nix-shell shell.nix
these derivations will be built:
/nix/store/j6p6rskjji6l4hw95wbyyj2iyxd9j1j5-php.ini.drv
/nix/store/kymjwis1v82wif5jn7pczphg4j5q3ir5-php-with-extensions-7.4.4.drv
these paths will be fetched (96.21 MiB download, 436.69 MiB unpacked):
/nix/store/0cxqyn95rh7vihmywnaimrxlpb58958i-php-gd-7.4.4
/nix/store/0pxqh18n0wzqa6aamad2ljrl5nahlyiv-php-openssl-7.4.4
....
[nix-shell:/]# python --version
Python 2.7.18
[nix-shell:/]# php -v
PHP 7.4.4 (cli) (built: Mar 17 2020 10:40:37) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.4, Copyright (c), by Zend Technologies
此处提供更多信息:https://nixos.wiki/wiki/Development_environment_with_nix-shell
根据 https://chris-martin.org/2015/installing-nixos 存在一个 /etc/nixos/configuration.nix
文件。
我正在使用来自 https://hub.docker.com/r/nixos/nix/ 和 运行
的 docker 容器find . -name "configuration.nix"
在容器内 returns 没有结果。
此配置位于何处?
如果由于某种原因它不存在或找不到它,您可以将构建系统所需的一切作为参数传递给 nixos-rebuild:
git clone --branch release-17.03 https://github.com/nixos/nixpkgs $HOME/nixpkgs
mkdir -p $HOME/nix-config
nixos-generate-config --dir $HOME/nix-config
nixos-install -I nixos-config=$HOME/nix-config/configuration.nix -I nixpkgs=$HOME/nixpkgs
无论如何我更喜欢这样做,因为它允许我使用我存储在个人 git 存储库中的配置的 nixpkgs 和 nix 文件。
echo $NIX_PATH
应该告诉你。查找 nixos-config
.
提到的docker容器不包含NixOS系统。引用评论:
It is basically Alpine linux distibution, with apk package manager and nix-env on top of it.
所以,没有 NixOS,没有 configuration.nix
。
(如果 OP 发表了评论,我不会感到惊讶☻)
如果我们谈论的是 NixOS 的容器故事,那么它在撰写本文时还处于起步阶段。
nix 镜像与 Nixos 项目没有直接关系。
你可以用 nix 容器做的事情是创建一个 nix-shell 环境:
docker run -ti nixos/nix
cb84c4b79d05:/# echo '{ pkgs ? import <nixpkgs> {} }:
> pkgs.mkShell {
> buildInputs = [ pkgs.python pkgs.php ];
> }
> ' > shell.nix
cb84c4b79d05:/# nix-shell shell.nix
these derivations will be built:
/nix/store/j6p6rskjji6l4hw95wbyyj2iyxd9j1j5-php.ini.drv
/nix/store/kymjwis1v82wif5jn7pczphg4j5q3ir5-php-with-extensions-7.4.4.drv
these paths will be fetched (96.21 MiB download, 436.69 MiB unpacked):
/nix/store/0cxqyn95rh7vihmywnaimrxlpb58958i-php-gd-7.4.4
/nix/store/0pxqh18n0wzqa6aamad2ljrl5nahlyiv-php-openssl-7.4.4
....
[nix-shell:/]# python --version
Python 2.7.18
[nix-shell:/]# php -v
PHP 7.4.4 (cli) (built: Mar 17 2020 10:40:37) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.4, Copyright (c), by Zend Technologies
此处提供更多信息:https://nixos.wiki/wiki/Development_environment_with_nix-shell