ihaskell-docker/flake.nix

83 lines
2.2 KiB
Nix

{
description = "Your jupyenv project";
nixConfig.extra-substituters = [
"https://tweag-jupyter.cachix.org"
];
nixConfig.extra-trusted-public-keys = [
"tweag-jupyter.cachix.org-1:UtNH4Zs6hVUFpFBTLaA4ejYavPo5EFFqgd7G7FxGW9g="
];
inputs.flake-compat.url = "github:edolstra/flake-compat";
inputs.flake-compat.flake = false;
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
inputs.jupyenv.url = "github:tweag/jupyenv";
outputs = {
self,
flake-compat,
flake-utils,
nixpkgs,
jupyenv,
...
} @ inputs:
flake-utils.lib.eachSystem
[
flake-utils.lib.system.x86_64-linux
]
(
system: let
inherit (jupyenv.lib.${system}) mkJupyterlabNew;
jupyterlab = mkJupyterlabNew ({...}: {
nixpkgs = inputs.nixpkgs;
imports = [(import ./kernels.nix)];
});
pkgs = nixpkgs.legacyPackages.${system};
in rec {
packages = rec {
inherit jupyterlab;
contents = pkgs.buildEnv {
name = "image-env";
paths = [
jupyterlab
pkgs.coreutils
pkgs.bash
pkgs.nodejs
pkgs.nodePackages.npm
];
};
docker-image = pkgs.dockerTools.buildImage {
name = "git.pbrinkmeier.de/paul/jup";
tag = "1.6";
copyToRoot = contents;
runAsRoot = ''
mkdir -p usr
ln -s /bin /usr/bin
'';
config = {
Env = [
"HOME=/data"
];
Cmd = [
"${contents}/bin/jupyter-lab"
"--notebook-dir=/notebooks"
"--ip=0.0.0.0"
"--no-browser"
# No authentication, has to be handled by reverse proxy!
"--ServerApp.token="
"--ServerApp.password="
"--collaborative"
];
WorkingDir = "/data";
};
};
};
packages.default = jupyterlab;
apps.default.program = "${jupyterlab}/bin/jupyter-lab";
apps.default.type = "app";
}
);
}