about summary refs log tree commit diff
path: root/pkgs/servers/mlflow-server
diff options
context:
space:
mode:
authortbenst <lensman@tylerbenster.com>2020-01-06 15:59:25 -0800
committerJon <jonringer@users.noreply.github.com>2020-02-15 22:11:25 -0800
commita35a2806db517f2a8db0a6ca0e9729690ba92cf1 (patch)
tree3a7ed1176cd07b47c213a88d3ca86ca127293641 /pkgs/servers/mlflow-server
parent5c20a955d7d84674da291a117052aaf456f24798 (diff)
mlflow-server: init at 1.4.0
Diffstat (limited to 'pkgs/servers/mlflow-server')
-rw-r--r--pkgs/servers/mlflow-server/default.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/pkgs/servers/mlflow-server/default.nix b/pkgs/servers/mlflow-server/default.nix
new file mode 100644
index 0000000000000..eb99fffeb169e
--- /dev/null
+++ b/pkgs/servers/mlflow-server/default.nix
@@ -0,0 +1,37 @@
+{lib, python3, writeText}:
+
+let
+  py = python3.pkgs;
+in
+py.toPythonApplication 
+  (py.mlflow.overridePythonAttrs(old: rec {
+    pname = "mlflow-server";
+
+    propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      py.boto3
+      py.mysqlclient
+    ];
+
+    postPatch = ''
+      substituteInPlace mlflow/utils/process.py --replace \
+        "child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True," \
+        "cmd[0]='$out/bin/gunicornMlflow'; child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True,"
+    '';
+
+    gunicornScript = writeText "gunicornMlflow"
+    ''
+        #!/usr/bin/env python
+        import re
+        import sys
+        from gunicorn.app.wsgiapp import run
+        if __name__ == '__main__':
+          sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', ''', sys.argv[0])
+          sys.exit(run())
+      '';
+
+    postInstall = ''
+      gpath=$out/bin/gunicornMlflow
+      cp ${gunicornScript} $gpath
+      chmod 555 $gpath
+    '';
+}))
\ No newline at end of file