![공식 Nix Docker 이미지를 사용하여 구성을 테스트하는 방법은 무엇입니까?](https://linux55.com/image/193138/%EA%B3%B5%EC%8B%9D%20Nix%20Docker%20%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B5%AC%EC%84%B1%EC%9D%84%20%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
구축하려고 해요내 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.systemPackages
ci.yml을 지웠습니다.