2020-01-06 23:59:25 +00:00
|
|
|
{lib, python3, writeText}:
|
|
|
|
|
|
|
|
let
|
|
|
|
py = python3.pkgs;
|
|
|
|
in
|
2020-11-05 21:06:46 +00:00
|
|
|
py.toPythonApplication
|
2020-01-06 23:59:25 +00:00
|
|
|
(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
|
|
|
|
'';
|
2020-11-05 23:28:15 +00:00
|
|
|
}))
|