|
1 | | -{ pkgs, providedPackageList, self, system }: |
2 | | - |
3 | | -{ |
4 | | - dockerImage = pkgs.dockerTools.buildLayeredImage { |
5 | | - name = "eic-nix"; |
6 | | - contents = map (name: self.packages.${system}.${name}) providedPackageList; |
7 | | - }; |
8 | | -} |
| 1 | +{ self |
| 2 | +, epic_pkgs |
| 3 | +, pkgs |
| 4 | +}: |
| 5 | + |
| 6 | +let |
| 7 | + |
| 8 | + packages = |
| 9 | + (builtins.attrValues |
| 10 | + (pkgs.lib.filterAttrs |
| 11 | + (name: value: (name != "fun4all") && (pkgs.lib.isDerivation value)) |
| 12 | + epic_pkgs)); |
| 13 | + |
| 14 | + extra_packages = with pkgs; [ |
| 15 | + # Development |
| 16 | + cmake |
| 17 | + gitFull |
| 18 | + nix |
| 19 | + stdenv.cc |
| 20 | + |
| 21 | + # Utilities |
| 22 | + bash |
| 23 | + cacert |
| 24 | + cachix |
| 25 | + coreutils |
| 26 | + curl |
| 27 | + emacs |
| 28 | + entr |
| 29 | + gawk |
| 30 | + gnugrep |
| 31 | + gnused |
| 32 | + jq |
| 33 | + less |
| 34 | + perl |
| 35 | + procps |
| 36 | + rsync |
| 37 | + silver-searcher |
| 38 | + vim |
| 39 | + which |
| 40 | + wget |
| 41 | + zsh |
| 42 | + |
| 43 | + # Libraries |
| 44 | + python3 |
| 45 | + python3Packages.awkward |
| 46 | + python3Packages.dask |
| 47 | + python3Packages.distributed |
| 48 | + python3Packages.hepmc3 |
| 49 | + python3Packages.matplotlib |
| 50 | + python3Packages.pyarrow |
| 51 | + python3Packages.scikit-learn |
| 52 | + python3Packages.pytorch |
| 53 | + python3Packages.uproot |
| 54 | + root |
| 55 | + |
| 56 | + # Continuous Integration |
| 57 | + github-runner |
| 58 | + ]; |
| 59 | + |
| 60 | + container_env = pkgs.runCommandNoCC "container-env" { |
| 61 | + buildInputs = packages ++ extra_packages; |
| 62 | + } '' |
| 63 | + mkdir -p "$out/.singularity.d/env" |
| 64 | + declare -p | grep -vE "^declare -[ai-]" | grep -vE "^declare -. (PWD|OLDPWD|HOME|TMP|TEMP)" > "$out/.singularity.d/env/99-epic-nix.sh" |
| 65 | + cat > "$out/.singularity.d/env/99-epic-nix-config.sh" <<EOF |
| 66 | + unset NIX_STORE_DIR |
| 67 | + unset NIX_CONF_DIR |
| 68 | + unset NIX_STATE_DIR |
| 69 | + EOF |
| 70 | + mkdir -p "$out/etc/nix" |
| 71 | + cat > "$out/etc/nix/nix.conf" <<EOF |
| 72 | + experimental-features = flakes nix-command |
| 73 | + substituters = https://cache.nixos.org https://epic-eic.cachix.org |
| 74 | + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= epic-eic.cachix.org-1:9Mu7fnayGYtapkzXm+7ZhPP5w7bJxtSv9C+BJTWon/o= |
| 75 | + EOF |
| 76 | + ''; |
| 77 | + |
| 78 | +in |
| 79 | + |
| 80 | + pkgs.dockerTools.buildLayeredImage { |
| 81 | + name = "epic-nix"; |
| 82 | + contents = packages ++ extra_packages ++ [ container_env ]; |
| 83 | + } |
0 commit comments