Size: a a a

2021 June 19

АБ

Александр Бантьев... in NixOS
Но вообще правильнее наверное сделать свой скоуп, чтобы там был свой callPackage
источник

АБ

Александр Бантьев... in NixOS
И дальше уже этот скоуп оверрайдить
источник

AV

Alexander Vershilov in NixOS
Звучит сложно
источник

АБ

Александр Бантьев... in NixOS
А проще всего всё делать в одном оверлее
источник

AV

Alexander Vershilov in NixOS
У меня там несколько шагов, которые в один оверлей не укладывались :(
источник

АБ

Александр Бантьев... in NixOS
Хм, как так?
источник

АБ

Александр Бантьев... in NixOS
С помощью self всё должно уложиться
источник

АБ

Александр Бантьев... in NixOS
Ну разве что там какие-то совсем сложности
источник

AV

Alexander Vershilov in NixOS
Там при cleanSource .. опции не применялись или что-то такое
источник

AV

Alexander Vershilov in NixOS
Уверен, что это можно просто пофиксить, но я когда делал потратил на это слишком много времени, а надо было чтобы работало, когда-нить вернусь к этому и поправлю
источник

AN

Alexander N. in NixOS
Ой какое... (это про nix-optics), отличное дополнение к nix-parsec и nix-lisp
источник
2021 June 20

АБ

Александр Бантьев... in NixOS
Вообще не понял про что это, ну ладно
источник

AV

Alexander Vershilov in NixOS
Так, тут первая победа, теперь очередные проблемы (хотя наверное они в доке есть)
источник

AV

Alexander Vershilov in NixOS
Есть базовый образ:
```
{ pkgs
, glibcLocales-light
}:
pkgs.dockerTools.buildImage {
 name = "
sirius-base";
 contents = [ pkgs.busybox pkgs.iana-etc pkgs.tini pkgs.cacert pkgs.gettext ];

 config = {
   Env = [
     "PATH=/bin"
     "LOCALE_ARCHIVE=${glibcLocales-light}/lib/locale/locale-archive"
     "LC_ALL=en_US.UTF-8"
     "SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt"
   ];
 };
}

```
Он используется в оверлее:
```
... { sirius-base = self.callPackage ./pkgs/docker/base.nix { glibcLocales-light = glibcLocales-light; };
```
Из его основе делаются образы для пакетов:

dockerTools.buildImage {
 fromImage = cheopslab.docker.sirius-base;
 ...
}

По умолчанию env из базового не наследуется (кстати я перепроверю, но кажется так). Писать каждый раз env заново не хочется, ещё и переменные типа ${glibcLocales-light} придётся тащить. А доступа к config уже нет. Это как-то обойти можно?
источник

AV

Alexander Vershilov in NixOS
Т.е. хочется, как-то пронаследовать env
источник

АБ

Александр Бантьев... in NixOS
А, да, с этим сталкивался
источник

АБ

Александр Бантьев... in NixOS
Красивого решения не нашел
источник

АБ

Александр Бантьев... in NixOS
Можно добавить их в passthru и потом

dockerTools.buildImage {
 fromImage = cheopslab.docker.sirius-base;
 ...
} // cheopslab.docker.sirius-base.passthru
источник

AV

Alexander Vershilov in NixOS
О, а как так сделать и работает, что `fromImage = cheopslab.docker.sirius-base;` образ, а `cheopslab.docker.sirius-base.passthru` ещё сет?
источник

АБ

Александр Бантьев... in NixOS
Это немного забавная часть nix
источник