Как использовать официальный образ Nix Docker для проверки конфигурации?

Вы можете сделать что-то вроде этого:

exec > >(tee logfile) 2>&1

Это перенаправит потоки вывода и ошибок оболочки в подстановку процесса >(tee logfile), которая сохранит их в logfile, а также выведет их на терминал.

Как правильно указывает пользователь mosvy в комментариях ниже , любой вывод программы будет производиться так, как если бы он был перенаправлен в файл. Если утилита делает разницу между выводом в файл и на терминальное устройство, то вывод будет отличаться от того, что вы могли ожидать. Некоторые программы, требующие терминала, могут вообще не работать.

Вы также можете использовать утилиту script, которая сама по себе запускает интерактивную оболочку, которая регистрируется в файле. См. руководство по script.

0
17.07.2021, 09:46
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.

1
22.08.2021, 02:27

Теги

Похожие вопросы