公式Nix Dockerイメージを使用して設定をテストするには?

公式Nix Dockerイメージを使用して設定をテストするには?

構築しようとしています。私のNixの設定GitLab CIでは、すべての変更が少なくともNixOSで動作できることを確認してください。これ公式Nix DockerイメージNixOSと構造が非常に異なります(アルパインベース)、回避策がわからないエラーが発生し続けます。

$ docker run --volume=$(pwd):/etc/nixos --interactive --rm --tty nixos/nix
5cc8dad8d887:/# nix-build /etc/nixos/configuration.nix
error: cannot auto-call a function that has an argument without a default value ('config')

生成されたファイルにもnixos-generate-config同じ問題があります。

$ cd "$(mktemp --directory)"
$ nixos-generate-config --root .
$ nix-build etc/nixos/configuration.nix
error: cannot auto-call a function that has an argument without a default value ('config')

唯一の他買戻契約私は似たようなことをするたくさんここでやりたいことよりも複雑です。

ベストアンサー1

解決済み、ついに:

build:
  stage: test
  image: nixos/nix
  before_script:
  - echo system-features = kvm | tee -a /etc/nix/nix.conf
  - echo {} | tee common.nix hardware-configuration.nix host.nix
  - nix-env --install --attr nixpkgs.nixos-rebuild nixpkgs.man
  script:
  - nix-build '<nixpkgs/nixos>' -I nixos-config=ci.nix
  cache:
  - key:
      files:
      - configuration.nix
    paths:
    - /nix/store

ci.nixは、ビルドできるいくつかの項目を書き換えます。

{ lib, ... }: {
  imports = [ ./configuration.nix ];
  boot = lib.mkForce { };
  environment.systemPackages = lib.mkForce [ ];
}

注:ディスク容量が不足するのを防ぐために(または独自のランナーを作成して維持する必要がある場合)、environment.systemPackagesci.ymlを消去しました。

おすすめ記事