BentoML Example: H2O Classification

BentoML is an open source platform for machine learning model serving and deployment.

This notebook demonstrates how to use BentoML to turn a H2O model into a docker image containing a REST API server serving this model, as well as distributing your model as a command line tool or a pip-installable PyPI package.

Impression

In [5]:
%reload_ext autoreload
%autoreload 2
%matplotlib inline
In [ ]:
!pip install bentoml
!pip install h2o
In [6]:
import h2o
import bentoml

h2o.init()
Checking whether there is an H2O instance running at http://localhost:54321 ..... not found.
Attempting to start a local H2O server...
  Java Version: java version "9.0.1"; Java(TM) SE Runtime Environment (build 9.0.1+11); Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
  Starting server from /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages/h2o/backend/bin/h2o.jar
  Ice root: /var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/tmpkq2pnyhu
  JVM stdout: /var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/tmpkq2pnyhu/h2o_bozhaoyu_started_from_python.out
  JVM stderr: /var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/tmpkq2pnyhu/h2o_bozhaoyu_started_from_python.err
  Server is running at http://127.0.0.1:54321
Connecting to H2O server at http://127.0.0.1:54321 ... successful.
Warning: Your H2O cluster version is too old (9 months and 26 days)! Please download and install the latest version from http://h2o.ai/download/
H2O cluster uptime: 02 secs
H2O cluster timezone: America/Los_Angeles
H2O data parsing timezone: UTC
H2O cluster version: 3.24.0.2
H2O cluster version age: 9 months and 26 days !!!
H2O cluster name: H2O_from_python_bozhaoyu_7xlm4g
H2O cluster total nodes: 1
H2O cluster free memory: 4 Gb
H2O cluster total cores: 8
H2O cluster allowed cores: 8
H2O cluster status: accepting new members, healthy
H2O connection url: http://127.0.0.1:54321
H2O connection proxy: None
H2O internal security: False
H2O API Extensions: Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4
Python version: 3.7.3 final

This show case considers prostate cancer data and tries to find an algorithm to prognose a certain phase of cancer. The dataset was collected at the Ohio State University Comprehensive Cancer Center and includes demographic and medical data from each of the 380 patients as well as a classifier identifying if the patients tumor has already penetrated the prostatic capsule. This latter event is a clear sign for an advanced cancer state and also helps the doctor to decide on biopsy and treatment methods.

In this show case a deep learning algorithm is used to classify the tumors of the patients into 'penetrating prostatic capsule' and 'not penetrating prostatic capsule'.

Prepare Dataset & Model Training

In [7]:
prostate = h2o.import_file(path="https://raw.githubusercontent.com/multicode/h2o-notebook/master/prostate.csv")
prostate.describe()
Parse progress: |█████████████████████████████████████████████████████████| 100%
Rows:380
Cols:9


ID CAPSULE AGE RACE DPROS DCAPS PSA VOL GLEASON
type int int int int int int real real int
mins 1.0 0.0 43.0 0.0 1.0 1.0 0.3 0.0 0.0
mean 190.5 0.402631578947368466.039473684210491.08684210526315722.27105263157894881.107894736842104815.40863157894737515.8129210526315736.3842105263157904
maxs 380.0 1.0 79.0 2.0 4.0 2.0 139.7 97.6 9.0
sigma 109.840793879141270.49107433896305526.5270712691733110.30877325802527931.00010761815028610.310656449351493919.99757266856046 18.3476199672711751.0919533744261092
zeros 0 227 0 3 0 0 0 167 2
missing0 0 0 0 0 0 0 0 0
0 1.0 0.0 65.0 1.0 2.0 1.0 1.4 0.0 6.0
1 2.0 0.0 72.0 1.0 3.0 2.0 6.7 0.0 7.0
2 3.0 0.0 70.0 1.0 1.0 2.0 4.9 0.0 6.0
3 4.0 0.0 76.0 2.0 2.0 1.0 51.2 20.0 7.0
4 5.0 0.0 69.0 1.0 1.0 1.0 12.3 55.9 6.0
5 6.0 1.0 71.0 1.0 3.0 2.0 3.3 0.0 8.0
6 7.0 0.0 68.0 2.0 4.0 2.0 31.9 0.0 7.0
7 8.0 0.0 61.0 2.0 4.0 2.0 66.7 27.2 7.0
8 9.0 0.0 69.0 1.0 1.0 1.0 3.9 24.0 7.0
9 10.0 0.0 68.0 2.0 1.0 2.0 13.0 0.0 6.0
In [8]:
# import the deep learning estimator module
from h2o.estimators.deeplearning import H2ODeepLearningEstimator
# transform the target variable into a factor
prostate["CAPSULE"] = prostate["CAPSULE"].asfactor()
# construct and define the estimator object 
model = H2ODeepLearningEstimator(activation = "Tanh", hidden = [10, 10, 10], epochs = 100)
# train the model on the whole prostate dataset
model.train(x = list(set(prostate.columns) - set(["ID","CAPSULE"])), y ="CAPSULE", training_frame = prostate)
model.show()
deeplearning Model Build progress: |██████████████████████████████████████| 100%
Model Details
=============
H2ODeepLearningEstimator :  Deep Learning
Model Key:  DeepLearning_model_python_1581550864917_1


ModelMetricsBinomial: deeplearning
** Reported on train data. **

MSE: 0.13742235604104663
RMSE: 0.3707052144778201
LogLoss: 0.418901646759126
Mean Per-Class Error: 0.18793009127292626
AUC: 0.8853473841812789
pr_auc: 0.8245437620191027
Gini: 0.7706947683625578
Confusion Matrix (Act/Pred) for max f1 @ threshold = 0.30356438890837084: 
0 1 Error Rate
0 158.0 69.0 0.304 (69.0/227.0)
1 11.0 142.0 0.0719 (11.0/153.0)
Total 169.0 211.0 0.2105 (80.0/380.0)
Maximum Metrics: Maximum metrics at their respective thresholds

metric threshold value idx
max f1 0.3035644 0.7802198 210.0
max f2 0.2321613 0.8698225 232.0
max f0point5 0.6135485 0.7703281 136.0
max accuracy 0.6135485 0.8052632 136.0
max precision 0.9957857 1.0 0.0
max recall 0.0980649 1.0 292.0
max specificity 0.9957857 1.0 0.0
max absolute_mcc 0.3035644 0.6159649 210.0
max min_per_class_accuracy 0.4725253 0.7973856 166.0
max mean_per_class_accuracy 0.3035644 0.8120699 210.0
Gains/Lift Table: Avg response rate: 40.26 %, avg score: 43.75 %

group cumulative_data_fraction lower_threshold lift cumulative_lift response_rate score cumulative_response_rate cumulative_score capture_rate cumulative_capture_rate gain cumulative_gain
1 0.0105263 0.9850611 2.4836601 2.4836601 1.0 0.9897941 1.0 0.9897941 0.0261438 0.0261438 148.3660131 148.3660131
2 0.0210526 0.9794845 2.4836601 2.4836601 1.0 0.9830457 1.0 0.9864199 0.0261438 0.0522876 148.3660131 148.3660131
3 0.0315789 0.9636331 2.4836601 2.4836601 1.0 0.9703565 1.0 0.9810655 0.0261438 0.0784314 148.3660131 148.3660131
4 0.0421053 0.9486374 2.4836601 2.4836601 1.0 0.9545958 1.0 0.9744480 0.0261438 0.1045752 148.3660131 148.3660131
5 0.05 0.9408173 1.6557734 2.3529412 0.6666667 0.9469043 0.9473684 0.9700990 0.0130719 0.1176471 65.5773420 135.2941176
6 0.1 0.9031731 2.3529412 2.3529412 0.9473684 0.9266963 0.9473684 0.9483977 0.1176471 0.2352941 135.2941176 135.2941176
7 0.15 0.8652018 2.0915033 2.2657952 0.8421053 0.8848821 0.9122807 0.9272258 0.1045752 0.3398693 109.1503268 126.5795207
8 0.2 0.8293360 1.8300654 2.1568627 0.7368421 0.8468148 0.8684211 0.9071231 0.0915033 0.4313725 83.0065359 115.6862745
9 0.3 0.7140976 1.6993464 2.0043573 0.6842105 0.7817978 0.8070175 0.8653480 0.1699346 0.6013072 69.9346405 100.4357298
10 0.4 0.5480790 1.3071895 1.8300654 0.5263158 0.6254777 0.7368421 0.8053804 0.1307190 0.7320261 30.7189542 83.0065359
11 0.5 0.3714260 1.1764706 1.6993464 0.4736842 0.4664092 0.6842105 0.7375862 0.1176471 0.8496732 17.6470588 69.9346405
12 0.6 0.2398896 0.8496732 1.5577342 0.3421053 0.3027633 0.6271930 0.6651157 0.0849673 0.9346405 -15.0326797 55.7734205
13 0.7 0.1639418 0.3267974 1.3818861 0.1315789 0.1998567 0.5563910 0.5986501 0.0326797 0.9673203 -67.3202614 38.1886088
14 0.8 0.0827449 0.3267974 1.25 0.1315789 0.1190978 0.5032895 0.5387061 0.0326797 1.0 -67.3202614 25.0
15 0.9 0.0289986 0.0 1.1111111 0.0 0.0514155 0.4473684 0.4845627 0.0 1.0 -100.0 11.1111111
16 1.0 0.0030412 0.0 1.0 0.0 0.0140427 0.4026316 0.4375107 0.0 1.0 -100.0 0.0
Scoring History: 
timestamp duration training_speed epochs iterations samples training_rmse training_logloss training_r2 training_auc training_pr_auc training_lift training_classification_error
2020-02-12 15:41:10 0.000 sec None 0.0 0 0.0 nan nan nan nan nan nan nan
2020-02-12 15:41:11 1.369 sec 18627 obs/sec 10.0 1 3800.0 0.4276705 0.5659435 0.2395536 0.8186346 0.7723048 2.4836601 0.2473684
2020-02-12 15:41:11 1.557 sec 101604 obs/sec 100.0 10 38000.0 0.3707052 0.4189016 0.4286433 0.8853474 0.8245438 2.4836601 0.2105263
Variable Importances: 
variable relative_importance scaled_importance percentage
PSA 1.0 1.0 0.1684290
AGE 0.9730824 0.9730824 0.1638953
VOL 0.9568093 0.9568093 0.1611544
GLEASON 0.8978918 0.8978918 0.1512310
DPROS 0.8264121 0.8264121 0.1391918
DCAPS 0.7811980 0.7811980 0.1315764
RACE 0.5018259 0.5018259 0.0845220
In [9]:
predictions=model.predict(prostate)
predictions.show()
deeplearning prediction progress: |███████████████████████████████████████| 100%
predict p0 p1
00.759182 0.240818
10.20655 0.79345
00.92885 0.0711497
10.529636 0.470364
00.994685 0.00531483
10.07124940.928751
00.719996 0.280004
00.887014 0.112986
00.741257 0.258743
00.946604 0.0533964

Define BentoService for model serving

In [23]:
%%writefile h2o_model_service.py
import pandas as pd
import h2o
import bentoml
from bentoml.artifact import H2oModelArtifact
from bentoml.handlers import DataframeHandler

@bentoml.artifacts([H2oModelArtifact('model')])
@bentoml.env(
    pip_dependencies=['pandas', 'h2o==3.24.0.2'],
    conda_channels=['h2oai'],
    conda_dependencies=['h2o==3.24.0.2']
)
class H2oModelService(bentoml.BentoService):

    @bentoml.api(DataframeHandler)
    def predict(self, df):     
        hf = h2o.H2OFrame(df)
        predictions = self.artifacts.model.predict(hf)
        return predictions.as_data_frame()
Overwriting h2o_model_service.py

Save BentoService to file archive

In [24]:
# 1) import the custom BentoService defined above
from h2o_model_service import H2oModelService

# 2) `pack` it with required artifacts
bento_svc = H2oModelService()
bento_svc.pack('model', model)

# 3) save your BentoSerivce
saved_path = bento_svc.save()
print(saved_path)
running sdist
running egg_info
writing BentoML.egg-info/PKG-INFO
writing dependency_links to BentoML.egg-info/dependency_links.txt
writing entry points to BentoML.egg-info/entry_points.txt
writing requirements to BentoML.egg-info/requires.txt
writing top-level names to BentoML.egg-info/top_level.txt
reading manifest file 'BentoML.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'examples'
no previously-included directories found matching 'tests'
no previously-included directories found matching 'docs'
no previously-included directories found matching 'scripts'
warning: no previously-included files matching '*~' found anywhere in distribution
warning: no previously-included files matching '*.pyo' found anywhere in distribution
warning: no previously-included files matching '.git' found anywhere in distribution
warning: no previously-included files matching '.ipynb_checkpoints' found anywhere in distribution
warning: no previously-included files matching '__pycache__' found anywhere in distribution
writing manifest file 'BentoML.egg-info/SOURCES.txt'
running check
warning: check: missing meta-data: if 'author' supplied, 'author_email' must be supplied too

creating BentoML-0.6.2+7.g1d9fac1
creating BentoML-0.6.2+7.g1d9fac1/BentoML.egg-info
creating BentoML-0.6.2+7.g1d9fac1/bentoml
creating BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
creating BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
creating BentoML-0.6.2+7.g1d9fac1/bentoml/cli
creating BentoML-0.6.2+7.g1d9fac1/bentoml/clipper
creating BentoML-0.6.2+7.g1d9fac1/bentoml/configuration
creating BentoML-0.6.2+7.g1d9fac1/bentoml/deployment
creating BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/aws_lambda
creating BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/sagemaker
creating BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
creating BentoML-0.6.2+7.g1d9fac1/bentoml/marshal
creating BentoML-0.6.2+7.g1d9fac1/bentoml/migrations
creating BentoML-0.6.2+7.g1d9fac1/bentoml/migrations/versions
creating BentoML-0.6.2+7.g1d9fac1/bentoml/proto
creating BentoML-0.6.2+7.g1d9fac1/bentoml/repository
creating BentoML-0.6.2+7.g1d9fac1/bentoml/server
creating BentoML-0.6.2+7.g1d9fac1/bentoml/server/static
creating BentoML-0.6.2+7.g1d9fac1/bentoml/utils
creating BentoML-0.6.2+7.g1d9fac1/bentoml/utils/validator
creating BentoML-0.6.2+7.g1d9fac1/bentoml/yatai
creating BentoML-0.6.2+7.g1d9fac1/bentoml/yatai/client
copying files to BentoML-0.6.2+7.g1d9fac1...
copying LICENSE -> BentoML-0.6.2+7.g1d9fac1
copying MANIFEST.in -> BentoML-0.6.2+7.g1d9fac1
copying README.md -> BentoML-0.6.2+7.g1d9fac1
copying pyproject.toml -> BentoML-0.6.2+7.g1d9fac1
copying setup.cfg -> BentoML-0.6.2+7.g1d9fac1
copying setup.py -> BentoML-0.6.2+7.g1d9fac1
copying versioneer.py -> BentoML-0.6.2+7.g1d9fac1
copying BentoML.egg-info/PKG-INFO -> BentoML-0.6.2+7.g1d9fac1/BentoML.egg-info
copying BentoML.egg-info/SOURCES.txt -> BentoML-0.6.2+7.g1d9fac1/BentoML.egg-info
copying BentoML.egg-info/dependency_links.txt -> BentoML-0.6.2+7.g1d9fac1/BentoML.egg-info
copying BentoML.egg-info/entry_points.txt -> BentoML-0.6.2+7.g1d9fac1/BentoML.egg-info
copying BentoML.egg-info/requires.txt -> BentoML-0.6.2+7.g1d9fac1/BentoML.egg-info
copying BentoML.egg-info/top_level.txt -> BentoML-0.6.2+7.g1d9fac1/BentoML.egg-info
copying bentoml/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml
copying bentoml/_version.py -> BentoML-0.6.2+7.g1d9fac1/bentoml
copying bentoml/alembic.ini -> BentoML-0.6.2+7.g1d9fac1/bentoml
copying bentoml/db.py -> BentoML-0.6.2+7.g1d9fac1/bentoml
copying bentoml/exceptions.py -> BentoML-0.6.2+7.g1d9fac1/bentoml
copying bentoml/service.py -> BentoML-0.6.2+7.g1d9fac1/bentoml
copying bentoml/service_env.py -> BentoML-0.6.2+7.g1d9fac1/bentoml
copying bentoml/artifact/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/fastai_model_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/h2o_model_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/keras_model_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/lightgbm_model_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/pickle_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/pytorch_model_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/sklearn_model_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/text_file_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/tf_savedmodel_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/artifact/xgboost_model_artifact.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/artifact
copying bentoml/bundler/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
copying bentoml/bundler/bundler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
copying bentoml/bundler/config.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
copying bentoml/bundler/loader.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
copying bentoml/bundler/py_module_utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
copying bentoml/bundler/templates.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
copying bentoml/bundler/utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/bundler
copying bentoml/cli/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/cli/aws_lambda.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/cli/aws_sagemaker.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/cli/bento.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/cli/click_utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/cli/config.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/cli/deployment.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/cli/utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/cli
copying bentoml/clipper/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/clipper
copying bentoml/configuration/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/configuration
copying bentoml/configuration/configparser.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/configuration
copying bentoml/configuration/default_bentoml.cfg -> BentoML-0.6.2+7.g1d9fac1/bentoml/configuration
copying bentoml/deployment/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment
copying bentoml/deployment/operator.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment
copying bentoml/deployment/store.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment
copying bentoml/deployment/utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment
copying bentoml/deployment/aws_lambda/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/aws_lambda
copying bentoml/deployment/aws_lambda/download_extra_resources.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/aws_lambda
copying bentoml/deployment/aws_lambda/lambda_app.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/aws_lambda
copying bentoml/deployment/aws_lambda/utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/aws_lambda
copying bentoml/deployment/sagemaker/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/sagemaker
copying bentoml/deployment/sagemaker/sagemaker_nginx.conf -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/sagemaker
copying bentoml/deployment/sagemaker/sagemaker_serve.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/sagemaker
copying bentoml/deployment/sagemaker/sagemaker_wsgi.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/deployment/sagemaker
copying bentoml/handlers/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/base_handlers.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/clipper_handler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/dataframe_handler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/fastai_image_handler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/image_handler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/json_handler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/pytorch_tensor_handler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/tensorflow_tensor_handler.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/handlers/utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/handlers
copying bentoml/marshal/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/marshal
copying bentoml/marshal/marshal.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/marshal
copying bentoml/marshal/utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/marshal
copying bentoml/migrations/README -> BentoML-0.6.2+7.g1d9fac1/bentoml/migrations
copying bentoml/migrations/env.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/migrations
copying bentoml/migrations/script.py.mako -> BentoML-0.6.2+7.g1d9fac1/bentoml/migrations
copying bentoml/migrations/versions/a6b00ae45279_add_last_updated_at_for_deployments.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/migrations/versions
copying bentoml/proto/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/proto
copying bentoml/proto/deployment_pb2.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/proto
copying bentoml/proto/repository_pb2.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/proto
copying bentoml/proto/status_pb2.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/proto
copying bentoml/proto/yatai_service_pb2.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/proto
copying bentoml/proto/yatai_service_pb2_grpc.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/proto
copying bentoml/repository/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/repository
copying bentoml/repository/metadata_store.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/repository
copying bentoml/server/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/bento_api_server.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/bento_sagemaker_server.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/gunicorn_config.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/gunicorn_server.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/marshal_server.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/middlewares.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/server
copying bentoml/server/static/swagger-ui-bundle.js -> BentoML-0.6.2+7.g1d9fac1/bentoml/server/static
copying bentoml/server/static/swagger-ui.css -> BentoML-0.6.2+7.g1d9fac1/bentoml/server/static
copying bentoml/utils/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils
copying bentoml/utils/cloudpickle.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils
copying bentoml/utils/hybirdmethod.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils
copying bentoml/utils/log.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils
copying bentoml/utils/s3.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils
copying bentoml/utils/tempdir.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils
copying bentoml/utils/usage_stats.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils
copying bentoml/utils/validator/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/utils/validator
copying bentoml/yatai/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/yatai
copying bentoml/yatai/deployment_utils.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/yatai
copying bentoml/yatai/status.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/yatai
copying bentoml/yatai/yatai_service_impl.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/yatai
copying bentoml/yatai/client/__init__.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/yatai/client
copying bentoml/yatai/client/bento_repository_api.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/yatai/client
copying bentoml/yatai/client/deployment_api.py -> BentoML-0.6.2+7.g1d9fac1/bentoml/yatai/client
Writing BentoML-0.6.2+7.g1d9fac1/setup.cfg
UPDATING BentoML-0.6.2+7.g1d9fac1/bentoml/_version.py
set BentoML-0.6.2+7.g1d9fac1/bentoml/_version.py to '0.6.2+7.g1d9fac1'
Creating tar archive
removing 'BentoML-0.6.2+7.g1d9fac1' (and everything under it)
/Users/bozhaoyu/bentoml/repository/H2oModelService/20200212154840_9B4F59

Load BentoService from archive

In [26]:
import bentoml
import pandas as pd

# Load saved BentoService archive from file directory
loaded_bento_svc = bentoml.load(saved_path)

# Access the predict function of loaded BentoService
df = pd.read_csv("https://raw.githubusercontent.com/multicode/h2o-notebook/master/prostate.csv")
loaded_bento_svc.predict(df)
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
Warning: Your H2O cluster version is too old (9 months and 26 days)! Please download and install the latest version from http://h2o.ai/download/
H2O cluster uptime: 9 mins 57 secs
H2O cluster timezone: America/Los_Angeles
H2O data parsing timezone: UTC
H2O cluster version: 3.24.0.2
H2O cluster version age: 9 months and 26 days !!!
H2O cluster name: H2O_from_python_bozhaoyu_7xlm4g
H2O cluster total nodes: 1
H2O cluster free memory: 4.000 Gb
H2O cluster total cores: 8
H2O cluster allowed cores: 8
H2O cluster status: locked, healthy
H2O connection url: http://localhost:54321
H2O connection proxy: None
H2O internal security: False
H2O API Extensions: Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4
Python version: 3.7.3 final
Parse progress: |█████████████████████████████████████████████████████████| 100%
deeplearning prediction progress: |███████████████████████████████████████| 100%
Out[26]:
predict p0 p1
0 0 0.759182 0.240818
1 1 0.206550 0.793450
2 0 0.928850 0.071150
3 1 0.529636 0.470364
4 0 0.994685 0.005315
5 1 0.071249 0.928751
6 0 0.719996 0.280004
7 0 0.887014 0.112986
8 0 0.741257 0.258743
9 0 0.946604 0.053396
10 1 0.104321 0.895679
11 1 0.341440 0.658560
12 1 0.063687 0.936313
13 1 0.073498 0.926502
14 0 0.984623 0.015377
15 0 0.829035 0.170965
16 0 0.992961 0.007039
17 0 0.911270 0.088730
18 0 0.961408 0.038592
19 1 0.459757 0.540243
20 1 0.101847 0.898153
21 1 0.060942 0.939058
22 1 0.195738 0.804262
23 0 0.958617 0.041383
24 0 0.863820 0.136180
25 0 0.973789 0.026211
26 0 0.837290 0.162710
27 1 0.432738 0.567262
28 0 0.884755 0.115245
29 1 0.693039 0.306961
... ... ... ...
350 1 0.450389 0.549611
351 1 0.206426 0.793574
352 1 0.232992 0.767008
353 1 0.111794 0.888206
354 0 0.994620 0.005380
355 0 0.772495 0.227505
356 0 0.856316 0.143684
357 0 0.790401 0.209599
358 0 0.751706 0.248294
359 0 0.823106 0.176894
360 0 0.968783 0.031217
361 0 0.866238 0.133762
362 0 0.973572 0.026428
363 1 0.060369 0.939631
364 0 0.934055 0.065945
365 0 0.982616 0.017384
366 0 0.986303 0.013697
367 0 0.783974 0.216026
368 0 0.977394 0.022606
369 0 0.821787 0.178213
370 1 0.217962 0.782038
371 1 0.158703 0.841297
372 1 0.574615 0.425385
373 1 0.021272 0.978728
374 0 0.971391 0.028609
375 1 0.225569 0.774431
376 0 0.996959 0.003041
377 1 0.692943 0.307057
378 0 0.996956 0.003044
379 0 0.794254 0.205746

380 rows × 3 columns

Use BentoML CLI with BentoServices

Use bentoml get <service name> to list all of the service's versions

In [27]:
!bentoml get H2oModelService
BENTO_SERVICE                          AGE                          APIS                       ARTIFACTS
H2oModelService:20200212154840_9B4F59  2 minutes and 8.83 seconds   predict<DataframeHandler>  model<H2oModelArtifact>
H2oModelService:20200212154125_149345  9 minutes and 23.91 seconds  predict<DataframeHandler>  model<H2oModelArtifact>
H2oModelService:20200127130336_743DA0  2 weeks and 2 days           predict<DataframeHandler>  model<H2oModelArtifact>

bentoml get <service name>:<version> will display metadata and additional information of the specific version

In [28]:
!bentoml get H2oModelService:20200212154840_9B4F59
{
  "name": "H2oModelService",
  "version": "20200212154840_9B4F59",
  "uri": {
    "type": "LOCAL",
    "uri": "/Users/bozhaoyu/bentoml/repository/H2oModelService/20200212154840_9B4F59"
  },
  "bentoServiceMetadata": {
    "name": "H2oModelService",
    "version": "20200212154840_9B4F59",
    "createdAt": "2020-02-12T23:49:05.422467Z",
    "env": {
      "condaEnv": "name: bentoml-H2oModelService\nchannels:\n- defaults\n- h2oai\ndependencies:\n- python=3.7.3\n- pip\n- h2o\n",
      "pipDependencies": "bentoml==0.6.2\nh2o\npandas",
      "pythonVersion": "3.7.3"
    },
    "artifacts": [
      {
        "name": "model",
        "artifactType": "H2oModelArtifact"
      }
    ],
    "apis": [
      {
        "name": "predict",
        "handlerType": "DataframeHandler",
        "docs": "BentoService API",
        "handlerConfig": {
          "output_orient": "records",
          "orient": "records",
          "typ": "frame",
          "input_dtypes": null
        }
      }
    ]
  }
}

Use bentoml run command to get prediction result from the saved BentoService

In [29]:
!bentoml run H2oModelService:20200212154840_9B4F59 predict \
    --input https://raw.githubusercontent.com/multicode/h2o-notebook/master/prostate.csv
[2020-02-12 15:51:38,487] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.6.2. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-02-12 15:51:38,502] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.6.2,  but loading from BentoML version 0.6.2+7.g1d9fac1
[2020-02-12 15:51:38,578] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.6.2. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
Warning: Your H2O cluster version is too old (9 months and 26 days)! Please download and install the latest version from http://h2o.ai/download/
--------------------------  ---------------------------------------------------
H2O cluster uptime:         10 mins 33 secs
H2O cluster timezone:       America/Los_Angeles
H2O data parsing timezone:  UTC
H2O cluster version:        3.24.0.2
H2O cluster version age:    9 months and 26 days !!!
H2O cluster name:           H2O_from_python_bozhaoyu_7xlm4g
H2O cluster total nodes:    1
H2O cluster free memory:    4.000 Gb
H2O cluster total cores:    8
H2O cluster allowed cores:  8
H2O cluster status:         locked, healthy
H2O connection url:         http://localhost:54321
H2O connection proxy:
H2O internal security:      False
H2O API Extensions:         Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4
Python version:             3.7.3 final
--------------------------  ---------------------------------------------------
[2020-02-12 15:51:39,822] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.6.2. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
Parse progress: |█████████████████████████████████████████████████████████| 100%
deeplearning prediction progress: |███████████████████████████████████████| 100%
     predict        p0        p1
0          0  0.759182  0.240818
1          1  0.206550  0.793450
2          0  0.928850  0.071150
3          1  0.529636  0.470364
4          0  0.994685  0.005315
5          1  0.071249  0.928751
6          0  0.719996  0.280004
7          0  0.887014  0.112986
8          0  0.741257  0.258743
9          0  0.946604  0.053396
10         1  0.104321  0.895679
11         1  0.341440  0.658560
12         1  0.063687  0.936313
13         1  0.073498  0.926502
14         0  0.984623  0.015377
15         0  0.829035  0.170965
16         0  0.992961  0.007039
17         0  0.911270  0.088730
18         0  0.961408  0.038592
19         1  0.459757  0.540243
20         1  0.101847  0.898153
21         1  0.060942  0.939058
22         1  0.195738  0.804262
23         0  0.958617  0.041383
24         0  0.863820  0.136180
25         0  0.973789  0.026211
26         0  0.837290  0.162710
27         1  0.432738  0.567262
28         0  0.884755  0.115245
29         1  0.693039  0.306961
..       ...       ...       ...
350        1  0.450389  0.549611
351        1  0.206426  0.793574
352        1  0.232992  0.767008
353        1  0.111794  0.888206
354        0  0.994620  0.005380
355        0  0.772495  0.227505
356        0  0.856316  0.143684
357        0  0.790401  0.209599
358        0  0.751706  0.248294
359        0  0.823106  0.176894
360        0  0.968783  0.031217
361        0  0.866238  0.133762
362        0  0.973572  0.026428
363        1  0.060369  0.939631
364        0  0.934055  0.065945
365        0  0.982616  0.017384
366        0  0.986303  0.013697
367        0  0.783974  0.216026
368        0  0.977394  0.022606
369        0  0.821787  0.178213
370        1  0.217962  0.782038
371        1  0.158703  0.841297
372        1  0.574615  0.425385
373        1  0.021272  0.978728
374        0  0.971391  0.028609
375        1  0.225569  0.774431
376        0  0.996959  0.003041
377        1  0.692943  0.307057
378        0  0.996956  0.003044
379        0  0.794254  0.205746

[380 rows x 3 columns]
H2O session _sid_94c2 closed.

With bentoml serve You can quickly start a realtime serving API for testing and demo

In [16]:
!bentoml serve {saved_path}
[2020-02-12 15:42:39,257] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.6.2. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-02-12 15:42:39,271] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.6.2,  but loading from BentoML version 0.6.2+7.g1d9fac1
[2020-02-12 15:42:39,310] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.6.2. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
Warning: Your H2O cluster version is too old (9 months and 26 days)! Please download and install the latest version from http://h2o.ai/download/
--------------------------  ---------------------------------------------------
H2O cluster uptime:         1 min 33 secs
H2O cluster timezone:       America/Los_Angeles
H2O data parsing timezone:  UTC
H2O cluster version:        3.24.0.2
H2O cluster version age:    9 months and 26 days !!!
H2O cluster name:           H2O_from_python_bozhaoyu_7xlm4g
H2O cluster total nodes:    1
H2O cluster free memory:    4.000 Gb
H2O cluster total cores:    8
H2O cluster allowed cores:  8
H2O cluster status:         locked, healthy
H2O connection url:         http://localhost:54321
H2O connection proxy:
H2O internal security:      False
H2O API Extensions:         Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4
Python version:             3.7.3 final
--------------------------  ---------------------------------------------------
[2020-02-12 15:42:40,347] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.6.2. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
 * Serving Flask app "H2oModelService" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
INFO:werkzeug: * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
^C
H2O session _sid_8d97 closed.

Send prediction request to REST API server

Run the following command in terminal to make a HTTP request to the API server:

curl -i \
--header "Content-Type: text/csv" \
--request POST \
--data 'ID,CAPSULE,AGE,RACE,DPROS,DCAPS,PSA,VOL,GLEASON\n
1,0,65,1,2,1,1.4,0,6\n
2,0,72,1,3,2,6.7,0,7\n' \
localhost:5000/predict

"pip install" a BentoService archive

BentoML user can directly pip install saved BentoService with pip install $SAVED_PATH, and use it as a regular python package.

In [17]:
!pip install {saved_path}
Processing /Users/bozhaoyu/bentoml/repository/H2oModelService/20200212154125_149345
Requirement already satisfied: bentoml==0.6.2 in /Users/bozhaoyu/src/bento (from H2oModelService==20200212154125-149345) (0.6.2+7.g1d9fac1)
Requirement already satisfied: h2o in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from H2oModelService==20200212154125-149345) (3.24.0.2)
Requirement already satisfied: pandas in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from H2oModelService==20200212154125-149345) (0.24.2)
Requirement already satisfied: ruamel.yaml>=0.15.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.16.5)
Requirement already satisfied: numpy in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.16.4)
Requirement already satisfied: flask in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.0.4)
Requirement already satisfied: gunicorn in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (19.9.0)
Requirement already satisfied: click>=7.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (7.0)
Requirement already satisfied: prometheus_client in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.7.1)
Requirement already satisfied: python-json-logger in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.1.11)
Requirement already satisfied: boto3 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.10.42)
Requirement already satisfied: requests in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (2.22.0)
Requirement already satisfied: packaging in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (19.0)
Requirement already satisfied: docker in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (4.1.0)
Requirement already satisfied: configparser in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (3.7.4)
Requirement already satisfied: sqlalchemy>=1.3.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.3.6)
Requirement already satisfied: protobuf>=3.6.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (3.7.0)
Requirement already satisfied: grpcio in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.22.0)
Requirement already satisfied: cerberus in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.3.1)
Requirement already satisfied: tabulate in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.8.3)
Requirement already satisfied: humanfriendly in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (4.18)
Requirement already satisfied: alembic in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.2.1)
Requirement already satisfied: aiohttp in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (3.6.2)
Requirement already satisfied: python-dateutil<2.8.1,>=2.1 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.6.2->H2oModelService==20200212154125-149345) (2.8.0)
Requirement already satisfied: colorama>=0.3.8 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from h2o->H2oModelService==20200212154125-149345) (0.4.1)
Requirement already satisfied: future in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from h2o->H2oModelService==20200212154125-149345) (0.17.1)
Requirement already satisfied: pytz>=2011k in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from pandas->H2oModelService==20200212154125-149345) (2019.1)
Requirement already satisfied: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.8" in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from ruamel.yaml>=0.15.0->bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.2.0)
Requirement already satisfied: Jinja2>=2.10 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from flask->bentoml==0.6.2->H2oModelService==20200212154125-149345) (2.10.1)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from flask->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.1.0)
Requirement already satisfied: Werkzeug>=0.14 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from flask->bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.15.4)
Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from boto3->bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.9.4)
Requirement already satisfied: botocore<1.14.0,>=1.13.42 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from boto3->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.13.42)
Requirement already satisfied: s3transfer<0.3.0,>=0.2.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from boto3->bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.2.1)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.24.1)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.6.2->H2oModelService==20200212154125-149345) (2.8)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.6.2->H2oModelService==20200212154125-149345) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.6.2->H2oModelService==20200212154125-149345) (2019.11.28)
Requirement already satisfied: six in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from packaging->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.14.0)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from packaging->bentoml==0.6.2->H2oModelService==20200212154125-149345) (2.4.0)
Requirement already satisfied: websocket-client>=0.32.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from docker->bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.57.0)
Requirement already satisfied: setuptools in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from protobuf>=3.6.0->bentoml==0.6.2->H2oModelService==20200212154125-149345) (45.1.0.post20200119)
Requirement already satisfied: Mako in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from alembic->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.1.0)
Requirement already satisfied: python-editor>=0.3 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from alembic->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.0.4)
Requirement already satisfied: multidict<5.0,>=4.5 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from aiohttp->bentoml==0.6.2->H2oModelService==20200212154125-149345) (4.7.4)
Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from aiohttp->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.4.2)
Requirement already satisfied: async-timeout<4.0,>=3.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from aiohttp->bentoml==0.6.2->H2oModelService==20200212154125-149345) (3.0.1)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from aiohttp->bentoml==0.6.2->H2oModelService==20200212154125-149345) (19.1.0)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from Jinja2>=2.10->flask->bentoml==0.6.2->H2oModelService==20200212154125-149345) (1.1.1)
Requirement already satisfied: docutils<0.16,>=0.10 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from botocore<1.14.0,>=1.13.42->boto3->bentoml==0.6.2->H2oModelService==20200212154125-149345) (0.15.2)
Building wheels for collected packages: H2oModelService
  Building wheel for H2oModelService (setup.py) ... done
  Created wheel for H2oModelService: filename=H2oModelService-20200212154125.post149345-py3-none-any.whl size=145099 sha256=1d6b9e04e439f68f8cb9415113ab7dafa0a326dc89d16705bba00f15a6111589
  Stored in directory: /private/var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/pip-ephem-wheel-cache-a2nwrld4/wheels/86/26/b4/8a55f14f1443047214b64792c8eb5088a523b8ae365c272b00
Successfully built H2oModelService
Installing collected packages: H2oModelService
  Attempting uninstall: H2oModelService
    Found existing installation: H2oModelService 20200127130336-743DA0
    Uninstalling H2oModelService-20200127130336-743DA0:
      Successfully uninstalled H2oModelService-20200127130336-743DA0
Successfully installed H2oModelService-20200212154125.post149345
In [18]:
# Your bentoML model class name will become packaged name
import H2oModelService

ms = H2oModelService.load() # call load to ensure all artifacts are loaded
ms.predict(pd.read_csv('https://raw.githubusercontent.com/multicode/h2o-notebook/master/prostate.csv'))
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
Warning: Your H2O cluster version is too old (9 months and 26 days)! Please download and install the latest version from http://h2o.ai/download/
H2O cluster uptime: 1 min 52 secs
H2O cluster timezone: America/Los_Angeles
H2O data parsing timezone: UTC
H2O cluster version: 3.24.0.2
H2O cluster version age: 9 months and 26 days !!!
H2O cluster name: H2O_from_python_bozhaoyu_7xlm4g
H2O cluster total nodes: 1
H2O cluster free memory: 4.000 Gb
H2O cluster total cores: 8
H2O cluster allowed cores: 8
H2O cluster status: locked, healthy
H2O connection url: http://localhost:54321
H2O connection proxy: None
H2O internal security: False
H2O API Extensions: Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4
Python version: 3.7.3 final
Parse progress: |█████████████████████████████████████████████████████████| 100%
deeplearning prediction progress: |███████████████████████████████████████| 100%
Out[18]:
predict p0 p1
0 0 0.759182 0.240818
1 1 0.206550 0.793450
2 0 0.928850 0.071150
3 1 0.529636 0.470364
4 0 0.994685 0.005315
5 1 0.071249 0.928751
6 0 0.719996 0.280004
7 0 0.887014 0.112986
8 0 0.741257 0.258743
9 0 0.946604 0.053396
10 1 0.104321 0.895679
11 1 0.341440 0.658560
12 1 0.063687 0.936313
13 1 0.073498 0.926502
14 0 0.984623 0.015377
15 0 0.829035 0.170965
16 0 0.992961 0.007039
17 0 0.911270 0.088730
18 0 0.961408 0.038592
19 1 0.459757 0.540243
20 1 0.101847 0.898153
21 1 0.060942 0.939058
22 1 0.195738 0.804262
23 0 0.958617 0.041383
24 0 0.863820 0.136180
25 0 0.973789 0.026211
26 0 0.837290 0.162710
27 1 0.432738 0.567262
28 0 0.884755 0.115245
29 1 0.693039 0.306961
... ... ... ...
350 1 0.450389 0.549611
351 1 0.206426 0.793574
352 1 0.232992 0.767008
353 1 0.111794 0.888206
354 0 0.994620 0.005380
355 0 0.772495 0.227505
356 0 0.856316 0.143684
357 0 0.790401 0.209599
358 0 0.751706 0.248294
359 0 0.823106 0.176894
360 0 0.968783 0.031217
361 0 0.866238 0.133762
362 0 0.973572 0.026428
363 1 0.060369 0.939631
364 0 0.934055 0.065945
365 0 0.982616 0.017384
366 0 0.986303 0.013697
367 0 0.783974 0.216026
368 0 0.977394 0.022606
369 0 0.821787 0.178213
370 1 0.217962 0.782038
371 1 0.158703 0.841297
372 1 0.574615 0.425385
373 1 0.021272 0.978728
374 0 0.971391 0.028609
375 1 0.225569 0.774431
376 0 0.996959 0.003041
377 1 0.692943 0.307057
378 0 0.996956 0.003044
379 0 0.794254 0.205746

380 rows × 3 columns

Use installed BentoService as CLI tool

After install BentoService as PyPI package, you also have access to generated BentoService CLI

In [19]:
!H2oModelService --help
Usage: H2oModelService [OPTIONS] COMMAND [ARGS]...

  BentoML CLI tool

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  info            List APIs
  open-api-spec   Display OpenAPI/Swagger JSON specs
  run             Run API function
  serve           Start local rest server
  serve-gunicorn  Start local gunicorn server
In [20]:
!H2oModelService info
[2020-02-12 15:43:05,821] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.6.2. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-02-12 15:43:05,832] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.6.2,  but loading from BentoML version 0.6.2+7.g1d9fac1
{
  "name": "H2oModelService",
  "version": "20200212154125_149345",
  "created_at": "2020-02-12T23:41:50.347171Z",
  "env": {
    "conda_env": "name: bentoml-H2oModelService\nchannels:\n- defaults\n- h2oai\ndependencies:\n- python=3.7.3\n- pip\n- h2o\n",
    "pip_dependencies": "bentoml==0.6.2\nh2o\npandas",
    "python_version": "3.7.3"
  },
  "artifacts": [
    {
      "name": "model",
      "artifact_type": "H2oModelArtifact"
    }
  ],
  "apis": [
    {
      "name": "predict",
      "handler_type": "DataframeHandler",
      "docs": "BentoService API",
      "handler_config": {
        "input_dtypes": null,
        "output_orient": "records",
        "orient": "records",
        "typ": "frame"
      }
    }
  ]
}
In [16]:
!H2oModelService run predict --input https://raw.githubusercontent.com/multicode/h2o-notebook/master/prostate.csv
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
Warning: Your H2O cluster version is too old (9 months and 10 days)! Please download and install the latest version from http://h2o.ai/download/
--------------------------  ---------------------------------------------------
H2O cluster uptime:         10 mins 55 secs
H2O cluster timezone:       America/Los_Angeles
H2O data parsing timezone:  UTC
H2O cluster version:        3.24.0.2
H2O cluster version age:    9 months and 10 days !!!
H2O cluster name:           H2O_from_python_bozhaoyu_t0tjgs
H2O cluster total nodes:    1
H2O cluster free memory:    3.929 Gb
H2O cluster total cores:    8
H2O cluster allowed cores:  8
H2O cluster status:         locked, healthy
H2O connection url:         http://localhost:54321
H2O connection proxy:
H2O internal security:      False
H2O API Extensions:         Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4
Python version:             3.7.3 final
--------------------------  ---------------------------------------------------
Parse progress: |█████████████████████████████████████████████████████████| 100%
deeplearning prediction progress: |███████████████████████████████████████| 100%
     predict        p0        p1
0          0  0.848115  0.151885
1          1  0.070105  0.929895
2          0  0.811066  0.188934
3          0  0.654875  0.345125
4          0  0.976388  0.023612
5          1  0.007653  0.992347
6          1  0.366710  0.633290
7          0  0.741608  0.258392
8          0  0.849896  0.150104
9          0  0.954206  0.045794
10         1  0.124735  0.875265
11         1  0.012855  0.987145
12         1  0.006897  0.993103
13         1  0.023346  0.976654
14         0  0.954439  0.045561
15         0  0.873308  0.126692
16         0  0.995847  0.004153
17         0  0.942975  0.057025
18         0  0.956383  0.043617
19         1  0.519401  0.480599
20         1  0.375333  0.624667
21         1  0.119124  0.880876
22         1  0.086281  0.913719
23         0  0.955984  0.044016
24         1  0.235425  0.764575
25         0  0.933123  0.066877
26         0  0.847605  0.152395
27         0  0.801444  0.198556
28         0  0.978466  0.021534
29         0  0.846976  0.153024
..       ...       ...       ...
350        0  0.851689  0.148311
351        1  0.279962  0.720038
352        1  0.242421  0.757579
353        1  0.142225  0.857775
354        0  0.991817  0.008183
355        0  0.842409  0.157591
356        0  0.993845  0.006155
357        0  0.898781  0.101219
358        0  0.925263  0.074737
359        1  0.519334  0.480666
360        0  0.937892  0.062108
361        0  0.892579  0.107421
362        1  0.498661  0.501339
363        1  0.084541  0.915459
364        0  0.955307  0.044693
365        0  0.939791  0.060209
366        0  0.979533  0.020467
367        0  0.624312  0.375688
368        0  0.923424  0.076576
369        0  0.864255  0.135745
370        1  0.481427  0.518573
371        1  0.247845  0.752155
372        0  0.812461  0.187539
373        1  0.013263  0.986737
374        0  0.979902  0.020098
375        0  0.815974  0.184026
376        0  0.996915  0.003085
377        0  0.795500  0.204500
378        0  0.997350  0.002650
379        0  0.889588  0.110412

[380 rows x 3 columns]
H2O session _sid_ad3c closed.

Containerize REST API server with Docker

** Note: docker is not available when running in Google Colaboratory

Build the docker image

In [31]:
!cd {saved_path} && docker build -t h2o-model .
Sending build context to Docker daemon  1.121MB
Step 1/12 : FROM continuumio/miniconda3:4.7.12
 ---> 406f2b43ea59
Step 2/12 : ENTRYPOINT [ "/bin/bash", "-c" ]
 ---> Using cache
 ---> 28172be83c07
Step 3/12 : EXPOSE 5000
 ---> Using cache
 ---> 840844d191d4
Step 4/12 : RUN set -x      && apt-get update      && apt-get install --no-install-recommends --no-install-suggests -y libpq-dev build-essential      && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 243c05e712f3
Step 5/12 : RUN conda install pip numpy scipy       && pip install gunicorn
 ---> Using cache
 ---> 8fab95ab34fc
Step 6/12 : COPY . /bento
 ---> 9e91f805b215
Step 7/12 : WORKDIR /bento
 ---> Running in 1c99f57aa9c2
Removing intermediate container 1c99f57aa9c2
 ---> aca013715929
Step 8/12 : RUN if [ -f /bento/setup.sh ]; then /bin/bash -c /bento/setup.sh; fi
 ---> Running in a1ca39c32171
Removing intermediate container a1ca39c32171
 ---> 2ea3b0b46eb5
Step 9/12 : RUN conda env update -n base -f /bento/environment.yml
 ---> Running in ce486e1d0094
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done

Downloading and Extracting Packages
h2o-3.18.0.2         | 118.2 MB  | ########## | 100% 
openssl-1.1.1d       | 2.5 MB    | ########## | 100% 
pip-20.0.2           | 1.7 MB    | ########## | 100% 
openjdk-8.0.152      | 57.9 MB   | ########## | 100% 
python-3.7.3         | 32.1 MB   | ########## | 100% 
ca-certificates-2020 | 125 KB    | ########## | 100% 
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done


==> WARNING: A newer version of conda exists. <==
  current version: 4.8.1
  latest version: 4.8.2

Please update conda by running

    $ conda update -n base -c defaults conda


#
# To activate this environment, use
#
#     $ conda activate base
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Removing intermediate container ce486e1d0094
 ---> 5f1a149f2844
Step 10/12 : RUN pip install -r /bento/requirements.txt
 ---> Running in 2824c011f190
Collecting bentoml==0.6.2
  Downloading BentoML-0.6.2-py3-none-any.whl (554 kB)
Collecting h2o
  Downloading h2o-3.28.0.3.tar.gz (126.2 MB)
Collecting pandas
  Downloading pandas-1.0.1-cp37-cp37m-manylinux1_x86_64.whl (10.1 MB)
Collecting grpcio
  Downloading grpcio-1.27.1-cp37-cp37m-manylinux2010_x86_64.whl (2.7 MB)
Requirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (1.18.1)
Requirement already satisfied: gunicorn in /opt/conda/lib/python3.7/site-packages (from bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (20.0.4)
Collecting click>=7.0
  Downloading Click-7.0-py2.py3-none-any.whl (81 kB)
Collecting humanfriendly
  Downloading humanfriendly-6.1-py2.py3-none-any.whl (75 kB)
Collecting prometheus-client
  Downloading prometheus_client-0.7.1.tar.gz (38 kB)
Collecting packaging
  Downloading packaging-20.1-py2.py3-none-any.whl (36 kB)
Collecting boto3
  Downloading boto3-1.11.16-py2.py3-none-any.whl (128 kB)
Collecting protobuf>=3.6.0
  Downloading protobuf-3.11.3-cp37-cp37m-manylinux1_x86_64.whl (1.3 MB)
Collecting configparser
  Downloading configparser-4.0.2-py2.py3-none-any.whl (22 kB)
Collecting tabulate
  Downloading tabulate-0.8.6.tar.gz (45 kB)
Collecting cerberus
  Downloading Cerberus-1.3.2.tar.gz (52 kB)
Collecting sqlalchemy>=1.3.0
  Downloading SQLAlchemy-1.3.13.tar.gz (6.0 MB)
Collecting ruamel.yaml>=0.15.0
  Downloading ruamel.yaml-0.16.10-py2.py3-none-any.whl (111 kB)
Collecting python-json-logger
  Downloading python-json-logger-0.1.11.tar.gz (6.0 kB)
Collecting python-dateutil<2.8.1,>=2.1
  Downloading python_dateutil-2.8.0-py2.py3-none-any.whl (226 kB)
Collecting alembic
  Downloading alembic-1.4.0.tar.gz (1.1 MB)
Requirement already satisfied: requests in /opt/conda/lib/python3.7/site-packages (from bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (2.22.0)
Collecting docker
  Downloading docker-4.2.0-py2.py3-none-any.whl (143 kB)
Collecting flask
  Downloading Flask-1.1.1-py2.py3-none-any.whl (94 kB)
Collecting future
  Downloading future-0.18.2.tar.gz (829 kB)
Collecting colorama>=0.3.8
  Downloading colorama-0.4.3-py2.py3-none-any.whl (15 kB)
Collecting pytz>=2017.2
  Downloading pytz-2019.3-py2.py3-none-any.whl (509 kB)
Requirement already satisfied: six>=1.5.2 in /opt/conda/lib/python3.7/site-packages (from grpcio->bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (1.12.0)
Requirement already satisfied: setuptools>=3.0 in /opt/conda/lib/python3.7/site-packages (from gunicorn->bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (41.4.0)
Collecting pyparsing>=2.0.2
  Downloading pyparsing-2.4.6-py2.py3-none-any.whl (67 kB)
Collecting jmespath<1.0.0,>=0.7.1
  Downloading jmespath-0.9.4-py2.py3-none-any.whl (24 kB)
Collecting botocore<1.15.0,>=1.14.16
  Downloading botocore-1.14.16-py2.py3-none-any.whl (5.9 MB)
Collecting s3transfer<0.4.0,>=0.3.0
  Downloading s3transfer-0.3.3-py2.py3-none-any.whl (69 kB)
Collecting ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.9"
  Downloading ruamel.yaml.clib-0.2.0-cp37-cp37m-manylinux1_x86_64.whl (547 kB)
Collecting Mako
  Downloading Mako-1.1.1.tar.gz (468 kB)
Collecting python-editor>=0.3
  Downloading python_editor-1.0.4-py3-none-any.whl (4.9 kB)
Requirement already satisfied: idna<2.9,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (2019.11.28)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /bento/requirements.txt (line 1)) (1.24.2)
Collecting websocket-client>=0.32.0
  Downloading websocket_client-0.57.0-py2.py3-none-any.whl (200 kB)
Collecting itsdangerous>=0.24
  Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting Werkzeug>=0.15
  Downloading Werkzeug-1.0.0-py2.py3-none-any.whl (298 kB)
Collecting Jinja2>=2.10.1
  Downloading Jinja2-2.11.1-py2.py3-none-any.whl (126 kB)
Collecting docutils<0.16,>=0.10
  Downloading docutils-0.15.2-py3-none-any.whl (547 kB)
Collecting MarkupSafe>=0.9.2
  Downloading MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl (27 kB)
Building wheels for collected packages: h2o, prometheus-client, tabulate, cerberus, sqlalchemy, python-json-logger, alembic, future, Mako
  Building wheel for h2o (setup.py): started
  Building wheel for h2o (setup.py): finished with status 'done'
  Created wheel for h2o: filename=h2o-3.28.0.3-py2.py3-none-any.whl size=126303006 sha256=4b52a4da7d8405022fc04e5ea5b14ef5b6854de00e0b514ec3be3899ac4d2631
  Stored in directory: /root/.cache/pip/wheels/8e/07/a2/138178254b7de41faa212b9a987f5fb6d0cf68b64c3f866507
  Building wheel for prometheus-client (setup.py): started
  Building wheel for prometheus-client (setup.py): finished with status 'done'
  Created wheel for prometheus-client: filename=prometheus_client-0.7.1-py3-none-any.whl size=41402 sha256=6b4fb8636924a0acee476bbac8f07deadfa28d71989fb0c8daae0a8b1b5c5f66
  Stored in directory: /root/.cache/pip/wheels/30/0c/26/59ba285bf65dc79d195e9b25e2ddde4c61070422729b0cd914
  Building wheel for tabulate (setup.py): started
  Building wheel for tabulate (setup.py): finished with status 'done'
  Created wheel for tabulate: filename=tabulate-0.8.6-py3-none-any.whl size=23273 sha256=f30222d10435dfebe440f0ccd55fd9cf0683bbedd1c1cb1651f064117ff37470
  Stored in directory: /root/.cache/pip/wheels/09/b6/7e/08b4ee715a1239453e89a59081f0ac369a9036f232e013ecd8
  Building wheel for cerberus (setup.py): started
  Building wheel for cerberus (setup.py): finished with status 'done'
  Created wheel for cerberus: filename=Cerberus-1.3.2-py3-none-any.whl size=54335 sha256=c1db9a51ce4d59c233850e9e5920ec29130ccd8713dbaa2118780269b48f3e61
  Stored in directory: /root/.cache/pip/wheels/17/3a/0d/e2fc48cf85cb858f5e65f1baa36180ebb5dce6397c35c4cfcb
  Building wheel for sqlalchemy (setup.py): started
  Building wheel for sqlalchemy (setup.py): finished with status 'done'
  Created wheel for sqlalchemy: filename=SQLAlchemy-1.3.13-cp37-cp37m-linux_x86_64.whl size=1223691 sha256=9f1d0b7849433aa6e27c78afdde6a134ba84bfbb36dedb52f897048b83c57a1f
  Stored in directory: /root/.cache/pip/wheels/b9/ba/77/163f10f14bd489351530603e750c195b0ceceed2f3be2b32f1
  Building wheel for python-json-logger (setup.py): started
  Building wheel for python-json-logger (setup.py): finished with status 'done'
  Created wheel for python-json-logger: filename=python_json_logger-0.1.11-py2.py3-none-any.whl size=5076 sha256=92cc432fcfd9befe9897ccea4aaacf610aa3e891fc115be6417694d11f40f9aa
  Stored in directory: /root/.cache/pip/wheels/fa/7f/fd/92ccdbb9d1a65486406e0363d2ba5b4ce52f400a915f602ecb
  Building wheel for alembic (setup.py): started
  Building wheel for alembic (setup.py): finished with status 'done'
  Created wheel for alembic: filename=alembic-1.4.0-py2.py3-none-any.whl size=157563 sha256=2705c8362c60608627fc5421905660a533e863bab2023269d5149890290fb42e
  Stored in directory: /root/.cache/pip/wheels/33/a9/f9/a53f885636269db5b76cf7afa3a1ab86d9d2fe96610d09274e
  Building wheel for future (setup.py): started
  Building wheel for future (setup.py): finished with status 'done'
  Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491056 sha256=c362ca824f59f8ae9fe324924806de9ae1eea2bb03ac7c7d8797c178dea72801
  Stored in directory: /root/.cache/pip/wheels/56/b0/fe/4410d17b32f1f0c3cf54cdfb2bc04d7b4b8f4ae377e2229ba0
  Building wheel for Mako (setup.py): started
  Building wheel for Mako (setup.py): finished with status 'done'
  Created wheel for Mako: filename=Mako-1.1.1-py3-none-any.whl size=75409 sha256=b05bb37e95ce9c5c908a24402954772078b6cc168804f4be778f99dbf2e38c90
  Stored in directory: /root/.cache/pip/wheels/11/fe/fa/3693b62cf5ec2b2784b6496734f0ee3e2321eb66d66607e5f9
Successfully built h2o prometheus-client tabulate cerberus sqlalchemy python-json-logger alembic future Mako
Installing collected packages: grpcio, click, humanfriendly, prometheus-client, pyparsing, packaging, jmespath, docutils, python-dateutil, botocore, s3transfer, boto3, protobuf, configparser, tabulate, cerberus, sqlalchemy, ruamel.yaml.clib, ruamel.yaml, python-json-logger, MarkupSafe, Mako, python-editor, alembic, websocket-client, docker, itsdangerous, Werkzeug, Jinja2, flask, pytz, pandas, bentoml, future, colorama, h2o
Successfully installed Jinja2-2.11.1 Mako-1.1.1 MarkupSafe-1.1.1 Werkzeug-1.0.0 alembic-1.4.0 bentoml-0.6.2 boto3-1.11.16 botocore-1.14.16 cerberus-1.3.2 click-7.0 colorama-0.4.3 configparser-4.0.2 docker-4.2.0 docutils-0.15.2 flask-1.1.1 future-0.18.2 grpcio-1.27.1 h2o-3.28.0.3 humanfriendly-6.1 itsdangerous-1.1.0 jmespath-0.9.4 packaging-20.1 pandas-1.0.1 prometheus-client-0.7.1 protobuf-3.11.3 pyparsing-2.4.6 python-dateutil-2.8.0 python-editor-1.0.4 python-json-logger-0.1.11 pytz-2019.3 ruamel.yaml-0.16.10 ruamel.yaml.clib-0.2.0 s3transfer-0.3.3 sqlalchemy-1.3.13 tabulate-0.8.6 websocket-client-0.57.0
Removing intermediate container 2824c011f190
 ---> 9f2042bd588d
Step 11/12 : RUN if [ -f /bento/bentoml_init.sh ]; then /bin/bash -c /bento/bentoml_init.sh; fi
 ---> Running in 091d53e394ea
Processing ./bundled_pip_dependencies/BentoML-0.6.2+7.g1d9fac1.tar.gz
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
Requirement already satisfied, skipping upgrade: humanfriendly in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (6.1)
Requirement already satisfied, skipping upgrade: flask in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.1.1)
Requirement already satisfied, skipping upgrade: boto3 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.11.16)
Requirement already satisfied, skipping upgrade: python-dateutil<2.8.1,>=2.1 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (2.8.0)
Requirement already satisfied, skipping upgrade: gunicorn in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (20.0.4)
Requirement already satisfied, skipping upgrade: ruamel.yaml>=0.15.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (0.16.10)
Collecting aiohttp
  Downloading aiohttp-3.6.2-cp37-cp37m-manylinux1_x86_64.whl (1.2 MB)
Requirement already satisfied, skipping upgrade: requests in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (2.22.0)
Requirement already satisfied, skipping upgrade: sqlalchemy>=1.3.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.3.13)
Requirement already satisfied, skipping upgrade: docker in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (4.2.0)
Requirement already satisfied, skipping upgrade: click>=7.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (7.0)
Requirement already satisfied, skipping upgrade: numpy in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.18.1)
Requirement already satisfied, skipping upgrade: prometheus-client in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (0.7.1)
Requirement already satisfied, skipping upgrade: alembic in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.4.0)
Requirement already satisfied, skipping upgrade: python-json-logger in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (0.1.11)
Requirement already satisfied, skipping upgrade: cerberus in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.3.2)
Requirement already satisfied, skipping upgrade: pandas in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.0.1)
Requirement already satisfied, skipping upgrade: configparser in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (4.0.2)
Requirement already satisfied, skipping upgrade: packaging in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (20.1)
Requirement already satisfied, skipping upgrade: protobuf>=3.6.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (3.11.3)
Requirement already satisfied, skipping upgrade: tabulate in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (0.8.6)
Requirement already satisfied, skipping upgrade: grpcio in /opt/conda/lib/python3.7/site-packages (from BentoML==0.6.2+7.g1d9fac1) (1.27.1)
Requirement already satisfied, skipping upgrade: Werkzeug>=0.15 in /opt/conda/lib/python3.7/site-packages (from flask->BentoML==0.6.2+7.g1d9fac1) (1.0.0)
Requirement already satisfied, skipping upgrade: Jinja2>=2.10.1 in /opt/conda/lib/python3.7/site-packages (from flask->BentoML==0.6.2+7.g1d9fac1) (2.11.1)
Requirement already satisfied, skipping upgrade: itsdangerous>=0.24 in /opt/conda/lib/python3.7/site-packages (from flask->BentoML==0.6.2+7.g1d9fac1) (1.1.0)
Requirement already satisfied, skipping upgrade: botocore<1.15.0,>=1.14.16 in /opt/conda/lib/python3.7/site-packages (from boto3->BentoML==0.6.2+7.g1d9fac1) (1.14.16)
Requirement already satisfied, skipping upgrade: jmespath<1.0.0,>=0.7.1 in /opt/conda/lib/python3.7/site-packages (from boto3->BentoML==0.6.2+7.g1d9fac1) (0.9.4)
Requirement already satisfied, skipping upgrade: s3transfer<0.4.0,>=0.3.0 in /opt/conda/lib/python3.7/site-packages (from boto3->BentoML==0.6.2+7.g1d9fac1) (0.3.3)
Requirement already satisfied, skipping upgrade: six>=1.5 in /opt/conda/lib/python3.7/site-packages (from python-dateutil<2.8.1,>=2.1->BentoML==0.6.2+7.g1d9fac1) (1.12.0)
Requirement already satisfied, skipping upgrade: setuptools>=3.0 in /opt/conda/lib/python3.7/site-packages (from gunicorn->BentoML==0.6.2+7.g1d9fac1) (41.4.0)
Requirement already satisfied, skipping upgrade: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.9" in /opt/conda/lib/python3.7/site-packages (from ruamel.yaml>=0.15.0->BentoML==0.6.2+7.g1d9fac1) (0.2.0)
Collecting yarl<2.0,>=1.0
  Downloading yarl-1.4.2-cp37-cp37m-manylinux1_x86_64.whl (256 kB)
Requirement already satisfied, skipping upgrade: chardet<4.0,>=2.0 in /opt/conda/lib/python3.7/site-packages (from aiohttp->BentoML==0.6.2+7.g1d9fac1) (3.0.4)
Collecting attrs>=17.3.0
  Downloading attrs-19.3.0-py2.py3-none-any.whl (39 kB)
Collecting async-timeout<4.0,>=3.0
  Downloading async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting multidict<5.0,>=4.5
  Downloading multidict-4.7.4-cp37-cp37m-manylinux1_x86_64.whl (149 kB)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->BentoML==0.6.2+7.g1d9fac1) (1.24.2)
Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->BentoML==0.6.2+7.g1d9fac1) (2.8)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->BentoML==0.6.2+7.g1d9fac1) (2019.11.28)
Requirement already satisfied, skipping upgrade: websocket-client>=0.32.0 in /opt/conda/lib/python3.7/site-packages (from docker->BentoML==0.6.2+7.g1d9fac1) (0.57.0)
Requirement already satisfied, skipping upgrade: Mako in /opt/conda/lib/python3.7/site-packages (from alembic->BentoML==0.6.2+7.g1d9fac1) (1.1.1)
Requirement already satisfied, skipping upgrade: python-editor>=0.3 in /opt/conda/lib/python3.7/site-packages (from alembic->BentoML==0.6.2+7.g1d9fac1) (1.0.4)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /opt/conda/lib/python3.7/site-packages (from pandas->BentoML==0.6.2+7.g1d9fac1) (2019.3)
Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in /opt/conda/lib/python3.7/site-packages (from packaging->BentoML==0.6.2+7.g1d9fac1) (2.4.6)
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in /opt/conda/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask->BentoML==0.6.2+7.g1d9fac1) (1.1.1)
Requirement already satisfied, skipping upgrade: docutils<0.16,>=0.10 in /opt/conda/lib/python3.7/site-packages (from botocore<1.15.0,>=1.14.16->boto3->BentoML==0.6.2+7.g1d9fac1) (0.15.2)
Building wheels for collected packages: BentoML
  Building wheel for BentoML (PEP 517): started
  Building wheel for BentoML (PEP 517): finished with status 'done'
  Created wheel for BentoML: filename=BentoML-0.6.2+7.g1d9fac1-py3-none-any.whl size=513799 sha256=c7544e5d3fc0579ae26af94a6529097a9bc80b3eec8d3053d17323a36668a0cd
  Stored in directory: /root/.cache/pip/wheels/0a/0d/95/dfb521b2558409acf97e07ad18c855ea151e092f32ce3bd013
Successfully built BentoML
Installing collected packages: multidict, yarl, attrs, async-timeout, aiohttp, BentoML
  Attempting uninstall: BentoML
    Found existing installation: BentoML 0.6.2
    Uninstalling BentoML-0.6.2:
      Successfully uninstalled BentoML-0.6.2
Successfully installed BentoML-0.6.2+7.g1d9fac1 aiohttp-3.6.2 async-timeout-3.0.1 attrs-19.3.0 multidict-4.7.4 yarl-1.4.2
Removing intermediate container 091d53e394ea
 ---> 05f9a202c3b6
Step 12/12 : CMD ["bentoml serve-gunicorn /bento"]
 ---> Running in 83a2e7a9387e
Removing intermediate container 83a2e7a9387e
 ---> c95da2674f51
Successfully built c95da2674f51
Successfully tagged h2o-model:latest

Run the server with docker image

In [ ]:
!docker run -p 5000:5000 h2o-model

Deploy BentoService as REST API server to the cloud

BentoML support deployment to multiply cloud provider services, such as AWS Lambda, AWS Sagemaker, Google Cloudrun and etc. You can find the full list and guide on the documentation site at https://docs.bentoml.org/en/latest/deployment/index.html

For this demo, we are going to deploy to AWS Sagemaker

In [33]:
!bentoml sagemaker deploy first-h2o -b H2oModelService:20200212154840_9B4F59 --api-name predict
Deploying Sagemaker deployment -[2020-02-12 16:09:49,233] INFO - Step 1/11 : FROM continuumio/miniconda3:4.7.12
[2020-02-12 16:09:49,234] INFO - 

[2020-02-12 16:09:49,234] INFO -  ---> 406f2b43ea59

[2020-02-12 16:09:49,234] INFO - Step 2/11 : EXPOSE 8080
[2020-02-12 16:09:49,234] INFO - 

|[2020-02-12 16:09:49,412] INFO -  ---> Running in 80c56f62974c

-[2020-02-12 16:09:49,635] INFO -  ---> 85b4bb5fff81

[2020-02-12 16:09:49,635] INFO - Step 3/11 : RUN set -x      && apt-get update      && apt-get install --no-install-recommends --no-install-suggests -y libpq-dev build-essential     && apt-get install -y nginx      && rm -rf /var/lib/apt/lists/*
[2020-02-12 16:09:49,635] INFO - 

|[2020-02-12 16:09:49,772] INFO -  ---> Running in 8caf67652239

\[2020-02-12 16:09:50,323] INFO - + apt-get update

/[2020-02-12 16:09:50,499] INFO - Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]

[2020-02-12 16:09:50,536] INFO - Get:2 http://deb.debian.org/debian buster InRelease [122 kB]

[2020-02-12 16:09:50,561] INFO - Get:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]

\[2020-02-12 16:09:50,703] INFO - Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [176 kB]

-[2020-02-12 16:09:50,847] INFO - Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]

\[2020-02-12 16:09:53,168] INFO - Fetched 8319 kB in 3s (3097 kB/s)
Reading package lists...
|[2020-02-12 16:09:53,927] INFO - 

\[2020-02-12 16:09:53,972] INFO - + apt-get install --no-install-recommends --no-install-suggests -y libpq-dev build-essential

[2020-02-12 16:09:53,994] INFO - Reading package lists...
|[2020-02-12 16:09:54,710] INFO - 

[2020-02-12 16:09:54,755] INFO - Building dependency tree...
-[2020-02-12 16:09:54,943] INFO - 
Reading state information...
[2020-02-12 16:09:54,946] INFO - 

|[2020-02-12 16:09:55,157] INFO - The following additional packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-8 dpkg-dev g++

[2020-02-12 16:09:55,157] INFO -   g++-8 gcc gcc-8 libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev

[2020-02-12 16:09:55,158] INFO -   libcc1-0 libdpkg-perl libgcc-8-dev libgomp1 libisl19 libitm1 liblsan0

[2020-02-12 16:09:55,158] INFO -   libmpc3 libmpfr6 libmpx2 libpq5 libquadmath0 libstdc++-8-dev libtsan0

[2020-02-12 16:09:55,159] INFO -   libubsan1 linux-libc-dev make

[2020-02-12 16:09:55,161] INFO - Suggested packages:
  binutils-doc cpp-doc gcc-8-locales debian-keyring g++-multilib
  g++-8-multilib gcc-8-doc libstdc++6-8-dbg gcc-multilib manpages-dev autoconf
  automake libtool flex bison gdb gcc-doc gcc-8-multilib libgcc1-dbg
  libgomp1-dbg libitm1-dbg libatomic1-dbg libasan5-dbg liblsan0-dbg
  libtsan0-dbg libubsan1-dbg libmpx2-dbg libquadmath0-dbg glibc-doc gnupg
  | gnupg2 bzr postgresql-doc-11 libstdc++-8-doc make-doc
Recommended packages:
  fakeroot gnupg | gnupg2 libalgorithm-merge-perl manpages manpages-dev
  libfile-fcntllock-perl liblocale-gettext-perl

-[2020-02-12 16:09:55,369] INFO - The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-8

[2020-02-12 16:09:55,370] INFO -   dpkg-dev g++ g++-8 gcc gcc-8 libasan5 libatomic1 libbinutils libc-dev-bin

[2020-02-12 16:09:55,370] INFO -   libc6-dev libcc1-0 libdpkg-perl libgcc-8-dev libgomp1 libisl19 libitm1

[2020-02-12 16:09:55,370] INFO -   liblsan0 libmpc3 libmpfr6 libmpx2 libpq-dev libpq5 libquadmath0

[2020-02-12 16:09:55,372] INFO -   libstdc++-8-dev libtsan0 libubsan1 linux-libc-dev make

/[2020-02-12 16:09:55,419] INFO - 0 upgraded, 34 newly installed, 0 to remove and 29 not upgraded.
Need to get 47.2 MB of archives.
After this operation, 182 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 binutils-common amd64 2.31.1-16 [2073 kB]

-[2020-02-12 16:09:55,733] INFO - Get:2 http://deb.debian.org/debian buster/main amd64 libbinutils amd64 2.31.1-16 [478 kB]

[2020-02-12 16:09:55,775] INFO - Get:3 http://deb.debian.org/debian buster/main amd64 binutils-x86-64-linux-gnu amd64 2.31.1-16 [1823 kB]

|[2020-02-12 16:09:55,953] INFO - Get:4 http://deb.debian.org/debian buster/main amd64 binutils amd64 2.31.1-16 [56.8 kB]

[2020-02-12 16:09:55,957] INFO - Get:5 http://deb.debian.org/debian buster/main amd64 libc-dev-bin amd64 2.28-10 [275 kB]

[2020-02-12 16:09:55,982] INFO - Get:6 http://deb.debian.org/debian buster/main amd64 linux-libc-dev amd64 4.19.98-1 [1314 kB]

-[2020-02-12 16:09:56,098] INFO - Get:7 http://deb.debian.org/debian buster/main amd64 libc6-dev amd64 2.28-10 [2691 kB]

-[2020-02-12 16:09:56,520] INFO - Get:8 http://deb.debian.org/debian buster/main amd64 libisl19 amd64 0.20-2 [587 kB]

[2020-02-12 16:09:56,576] INFO - Get:9 http://deb.debian.org/debian buster/main amd64 libmpfr6 amd64 4.0.2-1 [775 kB]

/[2020-02-12 16:09:56,654] INFO - Get:10 http://deb.debian.org/debian buster/main amd64 libmpc3 amd64 1.1.0-1 [41.3 kB]

[2020-02-12 16:09:56,654] INFO - Get:11 http://deb.debian.org/debian buster/main amd64 cpp-8 amd64 8.3.0-6 [8914 kB]

-[2020-02-12 16:09:57,817] INFO - Get:12 http://deb.debian.org/debian buster/main amd64 cpp amd64 4:8.3.0-1 [19.4 kB]
Get:13 http://deb.debian.org/debian buster/main amd64 libcc1-0 amd64 8.3.0-6 [46.6 kB]

[2020-02-12 16:09:57,818] INFO - Get:14 http://deb.debian.org/debian buster/main amd64 libgomp1 amd64 8.3.0-6 [75.8 kB]

[2020-02-12 16:09:57,826] INFO - Get:15 http://deb.debian.org/debian buster/main amd64 libitm1 amd64 8.3.0-6 [27.7 kB]

/[2020-02-12 16:09:57,828] INFO - Get:16 http://deb.debian.org/debian buster/main amd64 libatomic1 amd64 8.3.0-6 [9032 B]
Get:17 http://deb.debian.org/debian buster/main amd64 libasan5 amd64 8.3.0-6 [362 kB]

[2020-02-12 16:09:57,853] INFO - Get:18 http://deb.debian.org/debian buster/main amd64 liblsan0 amd64 8.3.0-6 [131 kB]

[2020-02-12 16:09:57,869] INFO - Get:19 http://deb.debian.org/debian buster/main amd64 libtsan0 amd64 8.3.0-6 [283 kB]

[2020-02-12 16:09:57,894] INFO - Get:20 http://deb.debian.org/debian buster/main amd64 libubsan1 amd64 8.3.0-6 [120 kB]

[2020-02-12 16:09:57,905] INFO - Get:21 http://deb.debian.org/debian buster/main amd64 libmpx2 amd64 8.3.0-6 [11.4 kB]

[2020-02-12 16:09:57,909] INFO - Get:22 http://deb.debian.org/debian buster/main amd64 libquadmath0 amd64 8.3.0-6 [133 kB]

[2020-02-12 16:09:57,916] INFO - Get:23 http://deb.debian.org/debian buster/main amd64 libgcc-8-dev amd64 8.3.0-6 [2298 kB]

-[2020-02-12 16:09:58,136] INFO - Get:24 http://deb.debian.org/debian buster/main amd64 gcc-8 amd64 8.3.0-6 [9452 kB]

-[2020-02-12 16:09:59,410] INFO - Get:25 http://deb.debian.org/debian buster/main amd64 gcc amd64 4:8.3.0-1 [5196 B]

[2020-02-12 16:09:59,413] INFO - Get:26 http://deb.debian.org/debian buster/main amd64 libstdc++-8-dev amd64 8.3.0-6 [1532 kB]

|[2020-02-12 16:09:59,603] INFO - Get:27 http://deb.debian.org/debian buster/main amd64 g++-8 amd64 8.3.0-6 [9752 kB]

-[2020-02-12 16:10:01,037] INFO - Get:28 http://deb.debian.org/debian buster/main amd64 g++ amd64 4:8.3.0-1 [1644 B]
Get:29 http://deb.debian.org/debian buster/main amd64 make amd64 4.2.1-1.2 [341 kB]

[2020-02-12 16:10:01,084] INFO - Get:30 http://deb.debian.org/debian buster/main amd64 libdpkg-perl all 1.19.7 [1414 kB]

-[2020-02-12 16:10:01,457] INFO - Get:31 http://deb.debian.org/debian buster/main amd64 dpkg-dev all 1.19.7 [1773 kB]

/[2020-02-12 16:10:01,963] INFO - Get:32 http://deb.debian.org/debian buster/main amd64 build-essential amd64 12.6 [7576 B]

[2020-02-12 16:10:01,964] INFO - Get:33 http://deb.debian.org/debian buster/main amd64 libpq5 amd64 11.6-0+deb10u1 [166 kB]

[2020-02-12 16:10:01,986] INFO - Get:34 http://deb.debian.org/debian buster/main amd64 libpq-dev amd64 11.6-0+deb10u1 [163 kB]

\[2020-02-12 16:10:02,264] INFO - debconf: delaying package configuration, since apt-utils is not installed

-[2020-02-12 16:10:02,297] INFO - Fetched 47.2 MB in 7s (7114 kB/s)

[2020-02-12 16:10:02,327] INFO - Selecting previously unselected package binutils-common:amd64.
(Reading database ... 
(Reading database ... 75% INFO - (Reading database ... 5%
[2020-02-12 16:10:02,345] INFO - (Reading database ... 80%
[2020-02-12 16:10:02,362] INFO - (Reading database ... 85%
/[2020-02-12 16:10:02,377] INFO - (Reading database ... 90%
[2020-02-12 16:10:02,393] INFO - (Reading database ... 95%
(Reading database ... 12557 files and directories currently installed.)

[2020-02-12 16:10:02,410] INFO - Preparing to unpack .../00-binutils-common_2.31.1-16_amd64.deb ...

[2020-02-12 16:10:02,412] INFO - Unpacking binutils-common:amd64 (2.31.1-16) ...

-[2020-02-12 16:10:02,686] INFO - Selecting previously unselected package libbinutils:amd64.

[2020-02-12 16:10:02,687] INFO - Preparing to unpack .../01-libbinutils_2.31.1-16_amd64.deb ...

[2020-02-12 16:10:02,694] INFO - Unpacking libbinutils:amd64 (2.31.1-16) ...

/[2020-02-12 16:10:02,806] INFO - Selecting previously unselected package binutils-x86-64-linux-gnu.

[2020-02-12 16:10:02,808] INFO - Preparing to unpack .../02-binutils-x86-64-linux-gnu_2.31.1-16_amd64.deb ...

[2020-02-12 16:10:02,811] INFO - Unpacking binutils-x86-64-linux-gnu (2.31.1-16) ...

-[2020-02-12 16:10:03,105] INFO - Selecting previously unselected package binutils.

[2020-02-12 16:10:03,107] INFO - Preparing to unpack .../03-binutils_2.31.1-16_amd64.deb ...

[2020-02-12 16:10:03,110] INFO - Unpacking binutils (2.31.1-16) ...

[2020-02-12 16:10:03,148] INFO - Selecting previously unselected package libc-dev-bin.

[2020-02-12 16:10:03,150] INFO - Preparing to unpack .../04-libc-dev-bin_2.28-10_amd64.deb ...

[2020-02-12 16:10:03,153] INFO - Unpacking libc-dev-bin (2.28-10) ...

[2020-02-12 16:10:03,192] INFO - Selecting previously unselected package linux-libc-dev:amd64.

/[2020-02-12 16:10:03,194] INFO - Preparing to unpack .../05-linux-libc-dev_4.19.98-1_amd64.deb ...

[2020-02-12 16:10:03,197] INFO - Unpacking linux-libc-dev:amd64 (4.19.98-1) ...

\[2020-02-12 16:10:03,423] INFO - Selecting previously unselected package libc6-dev:amd64.

[2020-02-12 16:10:03,425] INFO - Preparing to unpack .../06-libc6-dev_2.28-10_amd64.deb ...

[2020-02-12 16:10:03,428] INFO - Unpacking libc6-dev:amd64 (2.28-10) ...

\[2020-02-12 16:10:03,869] INFO - Selecting previously unselected package libisl19:amd64.

[2020-02-12 16:10:03,872] INFO - Preparing to unpack .../07-libisl19_0.20-2_amd64.deb ...

[2020-02-12 16:10:03,875] INFO - Unpacking libisl19:amd64 (0.20-2) ...

-[2020-02-12 16:10:03,966] INFO - Selecting previously unselected package libmpfr6:amd64.

[2020-02-12 16:10:03,968] INFO - Preparing to unpack .../08-libmpfr6_4.0.2-1_amd64.deb ...

[2020-02-12 16:10:03,971] INFO - Unpacking libmpfr6:amd64 (4.0.2-1) ...

/[2020-02-12 16:10:04,032] INFO - Selecting previously unselected package libmpc3:amd64.

[2020-02-12 16:10:04,034] INFO - Preparing to unpack .../09-libmpc3_1.1.0-1_amd64.deb ...

[2020-02-12 16:10:04,037] INFO - Unpacking libmpc3:amd64 (1.1.0-1) ...

[2020-02-12 16:10:04,065] INFO - Selecting previously unselected package cpp-8.

[2020-02-12 16:10:04,067] INFO - Preparing to unpack .../10-cpp-8_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:04,070] INFO - Unpacking cpp-8 (8.3.0-6) ...

\[2020-02-12 16:10:05,047] INFO - Selecting previously unselected package cpp.

[2020-02-12 16:10:05,049] INFO - Preparing to unpack .../11-cpp_4%3a8.3.0-1_amd64.deb ...

[2020-02-12 16:10:05,053] INFO - Unpacking cpp (4:8.3.0-1) ...

[2020-02-12 16:10:05,084] INFO - Selecting previously unselected package libcc1-0:amd64.

[2020-02-12 16:10:05,085] INFO - Preparing to unpack .../12-libcc1-0_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,088] INFO - Unpacking libcc1-0:amd64 (8.3.0-6) ...

[2020-02-12 16:10:05,119] INFO - Selecting previously unselected package libgomp1:amd64.

[2020-02-12 16:10:05,121] INFO - Preparing to unpack .../13-libgomp1_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,124] INFO - Unpacking libgomp1:amd64 (8.3.0-6) ...

-[2020-02-12 16:10:05,156] INFO - Selecting previously unselected package libitm1:amd64.

[2020-02-12 16:10:05,158] INFO - Preparing to unpack .../14-libitm1_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,161] INFO - Unpacking libitm1:amd64 (8.3.0-6) ...

[2020-02-12 16:10:05,193] INFO - Selecting previously unselected package libatomic1:amd64.

[2020-02-12 16:10:05,194] INFO - Preparing to unpack .../15-libatomic1_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,197] INFO - Unpacking libatomic1:amd64 (8.3.0-6) ...

[2020-02-12 16:10:05,223] INFO - Selecting previously unselected package libasan5:amd64.

[2020-02-12 16:10:05,225] INFO - Preparing to unpack .../16-libasan5_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,228] INFO - Unpacking libasan5:amd64 (8.3.0-6) ...

/[2020-02-12 16:10:05,301] INFO - Selecting previously unselected package liblsan0:amd64.

[2020-02-12 16:10:05,303] INFO - Preparing to unpack .../17-liblsan0_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,305] INFO - Unpacking liblsan0:amd64 (8.3.0-6) ...

|[2020-02-12 16:10:05,346] INFO - Selecting previously unselected package libtsan0:amd64.

[2020-02-12 16:10:05,348] INFO - Preparing to unpack .../18-libtsan0_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,351] INFO - Unpacking libtsan0:amd64 (8.3.0-6) ...

[2020-02-12 16:10:05,409] INFO - Selecting previously unselected package libubsan1:amd64.

[2020-02-12 16:10:05,411] INFO - Preparing to unpack .../19-libubsan1_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,414] INFO - Unpacking libubsan1:amd64 (8.3.0-6) ...

\[2020-02-12 16:10:05,454] INFO - Selecting previously unselected package libmpx2:amd64.

[2020-02-12 16:10:05,456] INFO - Preparing to unpack .../20-libmpx2_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,458] INFO - Unpacking libmpx2:amd64 (8.3.0-6) ...

[2020-02-12 16:10:05,489] INFO - Selecting previously unselected package libquadmath0:amd64.

[2020-02-12 16:10:05,491] INFO - Preparing to unpack .../21-libquadmath0_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,494] INFO - Unpacking libquadmath0:amd64 (8.3.0-6) ...

[2020-02-12 16:10:05,532] INFO - Selecting previously unselected package libgcc-8-dev:amd64.
Preparing to unpack .../22-libgcc-8-dev_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,536] INFO - Unpacking libgcc-8-dev:amd64 (8.3.0-6) ...

|[2020-02-12 16:10:05,808] INFO - Selecting previously unselected package gcc-8.

[2020-02-12 16:10:05,810] INFO - Preparing to unpack .../23-gcc-8_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:05,813] INFO - Unpacking gcc-8 (8.3.0-6) ...

-[2020-02-12 16:10:06,835] INFO - Selecting previously unselected package gcc.

[2020-02-12 16:10:06,838] INFO - Preparing to unpack .../24-gcc_4%3a8.3.0-1_amd64.deb ...

[2020-02-12 16:10:06,841] INFO - Unpacking gcc (4:8.3.0-1) ...
[2020-02-12 16:10:06,842] INFO - 

[2020-02-12 16:10:06,871] INFO - Selecting previously unselected package libstdc++-8-dev:amd64.

[2020-02-12 16:10:06,873] INFO - Preparing to unpack .../25-libstdc++-8-dev_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:06,876] INFO - Unpacking libstdc++-8-dev:amd64 (8.3.0-6) ...

-[2020-02-12 16:10:07,200] INFO - Selecting previously unselected package g++-8.

[2020-02-12 16:10:07,203] INFO - Preparing to unpack .../26-g++-8_8.3.0-6_amd64.deb ...

[2020-02-12 16:10:07,206] INFO - Unpacking g++-8 (8.3.0-6) ...

|[2020-02-12 16:10:08,246] INFO - Selecting previously unselected package g++.

[2020-02-12 16:10:08,248] INFO - Preparing to unpack .../27-g++_4%3a8.3.0-1_amd64.deb ...

[2020-02-12 16:10:08,252] INFO - Unpacking g++ (4:8.3.0-1) ...

[2020-02-12 16:10:08,278] INFO - Selecting previously unselected package make.

[2020-02-12 16:10:08,281] INFO - Preparing to unpack .../28-make_4.2.1-1.2_amd64.deb ...

[2020-02-12 16:10:08,284] INFO - Unpacking make (4.2.1-1.2) ...

\[2020-02-12 16:10:08,354] INFO - Selecting previously unselected package libdpkg-perl.

[2020-02-12 16:10:08,356] INFO - Preparing to unpack .../29-libdpkg-perl_1.19.7_all.deb ...

[2020-02-12 16:10:08,360] INFO - Unpacking libdpkg-perl (1.19.7) ...

-[2020-02-12 16:10:08,451] INFO - Selecting previously unselected package dpkg-dev.

[2020-02-12 16:10:08,453] INFO - Preparing to unpack .../30-dpkg-dev_1.19.7_all.deb ...

[2020-02-12 16:10:08,456] INFO - Unpacking dpkg-dev (1.19.7) ...

/[2020-02-12 16:10:08,558] INFO - Selecting previously unselected package build-essential.

[2020-02-12 16:10:08,561] INFO - Preparing to unpack .../31-build-essential_12.6_amd64.deb ...

[2020-02-12 16:10:08,563] INFO - Unpacking build-essential (12.6) ...

[2020-02-12 16:10:08,591] INFO - Selecting previously unselected package libpq5:amd64.

[2020-02-12 16:10:08,593] INFO - Preparing to unpack .../32-libpq5_11.6-0+deb10u1_amd64.deb ...

[2020-02-12 16:10:08,596] INFO - Unpacking libpq5:amd64 (11.6-0+deb10u1) ...

|[2020-02-12 16:10:08,642] INFO - Selecting previously unselected package libpq-dev.

[2020-02-12 16:10:08,644] INFO - Preparing to unpack .../33-libpq-dev_11.6-0+deb10u1_amd64.deb ...

[2020-02-12 16:10:08,647] INFO - Unpacking libpq-dev (11.6-0+deb10u1) ...

[2020-02-12 16:10:08,699] INFO - Setting up binutils-common:amd64 (2.31.1-16) ...

[2020-02-12 16:10:08,708] INFO - Setting up libpq5:amd64 (11.6-0+deb10u1) ...

[2020-02-12 16:10:08,715] INFO - Setting up linux-libc-dev:amd64 (4.19.98-1) ...

\[2020-02-12 16:10:08,722] INFO - Setting up libpq-dev (11.6-0+deb10u1) ...

[2020-02-12 16:10:08,730] INFO - Setting up libgomp1:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,737] INFO - Setting up libasan5:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,745] INFO - Setting up make (4.2.1-1.2) ...

[2020-02-12 16:10:08,752] INFO - Setting up libmpfr6:amd64 (4.0.2-1) ...

[2020-02-12 16:10:08,761] INFO - Setting up libquadmath0:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,769] INFO - Setting up libmpc3:amd64 (1.1.0-1) ...

[2020-02-12 16:10:08,776] INFO - Setting up libatomic1:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,783] INFO - Setting up libdpkg-perl (1.19.7) ...

[2020-02-12 16:10:08,791] INFO - Setting up libmpx2:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,798] INFO - Setting up libubsan1:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,806] INFO - Setting up libisl19:amd64 (0.20-2) ...

[2020-02-12 16:10:08,815] INFO - Setting up libbinutils:amd64 (2.31.1-16) ...

-[2020-02-12 16:10:08,824] INFO - Setting up cpp-8 (8.3.0-6) ...

[2020-02-12 16:10:08,833] INFO - Setting up libc-dev-bin (2.28-10) ...

[2020-02-12 16:10:08,840] INFO - Setting up libcc1-0:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,847] INFO - Setting up liblsan0:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,855] INFO - Setting up libitm1:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,865] INFO - Setting up binutils-x86-64-linux-gnu (2.31.1-16) ...

[2020-02-12 16:10:08,873] INFO - Setting up libtsan0:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,881] INFO - Setting up binutils (2.31.1-16) ...

[2020-02-12 16:10:08,888] INFO - Setting up dpkg-dev (1.19.7) ...

[2020-02-12 16:10:08,900] INFO - Setting up libgcc-8-dev:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,908] INFO - Setting up cpp (4:8.3.0-1) ...

/[2020-02-12 16:10:08,929] INFO - Setting up libc6-dev:amd64 (2.28-10) ...

[2020-02-12 16:10:08,936] INFO - Setting up libstdc++-8-dev:amd64 (8.3.0-6) ...

[2020-02-12 16:10:08,943] INFO - Setting up gcc-8 (8.3.0-6) ...

[2020-02-12 16:10:08,950] INFO - Setting up gcc (4:8.3.0-1) ...

[2020-02-12 16:10:08,968] INFO - Setting up g++-8 (8.3.0-6) ...

[2020-02-12 16:10:08,976] INFO - Setting up g++ (4:8.3.0-1) ...

[2020-02-12 16:10:09,003] INFO - update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode

[2020-02-12 16:10:09,009] INFO - Setting up build-essential (12.6) ...

[2020-02-12 16:10:09,017] INFO - Processing triggers for libc-bin (2.28-10) ...

\[2020-02-12 16:10:09,156] INFO - + apt-get install -y nginx

[2020-02-12 16:10:09,170] INFO - Reading package lists...
|[2020-02-12 16:10:09,865] INFO - 

[2020-02-12 16:10:09,897] INFO - Building dependency tree...
\[2020-02-12 16:10:10,039] INFO - 
Reading state information...
[2020-02-12 16:10:10,039] INFO - 

/[2020-02-12 16:10:10,222] INFO - The following additional packages will be installed:

[2020-02-12 16:10:10,222] INFO -   fontconfig-config fonts-dejavu-core geoip-database libfontconfig1
  libfreetype6 libgd3 libgeoip1 libjbig0 libjpeg62-turbo
  libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
  libnginx-mod-http-geoip libnginx-mod-http-image-filter
  libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
  libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream

[2020-02-12 16:10:10,223] INFO -   libpng16-16 libtiff5 libwebp6 libxpm4 libxslt1.1 nginx-common nginx-full

[2020-02-12 16:10:10,226] INFO - Suggested packages:
  libgd-tools geoip-bin fcgiwrap nginx-doc ssl-cert

\[2020-02-12 16:10:10,436] INFO - The following NEW packages will be installed:

[2020-02-12 16:10:10,437] INFO -   fontconfig-config fonts-dejavu-core geoip-database libfontconfig1
  libfreetype6 libgd3 libgeoip1 libjbig0 libjpeg62-turbo
  libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
  libnginx-mod-http-geoip libnginx-mod-http-image-filter
  libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
  libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream

[2020-02-12 16:10:10,437] INFO -   libpng16-16 libtiff5 libwebp6 libxpm4 libxslt1.1 nginx nginx-common

[2020-02-12 16:10:10,438] INFO -   nginx-full

-[2020-02-12 16:10:10,486] INFO - 0 upgraded, 27 newly installed, 0 to remove and 29 not upgraded.
Need to get 7787 kB of archives.
After this operation, 19.8 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 fonts-dejavu-core all 2.37-1 [1068 kB]

|[2020-02-12 16:10:10,717] INFO - Get:2 http://deb.debian.org/debian buster/main amd64 fontconfig-config all 2.13.1-2 [280 kB]

[2020-02-12 16:10:10,760] INFO - Get:3 http://deb.debian.org/debian buster/main amd64 geoip-database all 20181108-1 [2449 kB]

/[2020-02-12 16:10:11,384] INFO - Get:4 http://deb.debian.org/debian buster/main amd64 libpng16-16 amd64 1.6.36-6 [292 kB]

[2020-02-12 16:10:11,465] INFO - Get:5 http://deb.debian.org/debian buster/main amd64 libfreetype6 amd64 2.9.1-3+deb10u1 [380 kB]

|[2020-02-12 16:10:11,889] INFO - Get:6 http://deb.debian.org/debian buster/main amd64 libfontconfig1 amd64 2.13.1-2 [346 kB]

[2020-02-12 16:10:11,928] INFO - Get:7 http://deb.debian.org/debian buster/main amd64 libjpeg62-turbo amd64 1:1.5.2-2+b1 [134 kB]

\[2020-02-12 16:10:12,081] INFO - Get:8 http://deb.debian.org/debian buster/main amd64 libjbig0 amd64 2.1-3.1+b2 [31.0 kB]

[2020-02-12 16:10:12,083] INFO - Get:9 http://deb.debian.org/debian buster/main amd64 libwebp6 amd64 0.6.1-2 [263 kB]

-[2020-02-12 16:10:12,141] INFO - Get:10 http://deb.debian.org/debian buster/main amd64 libtiff5 amd64 4.1.0+git191117-2~deb10u1 [271 kB]

[2020-02-12 16:10:12,173] INFO - Get:11 http://deb.debian.org/debian buster/main amd64 libxpm4 amd64 1:3.5.12-1 [49.1 kB]

/[2020-02-12 16:10:12,197] INFO - Get:12 http://deb.debian.org/debian buster/main amd64 libgd3 amd64 2.2.5-5.2 [136 kB]

[2020-02-12 16:10:12,217] INFO - Get:13 http://deb.debian.org/debian buster/main amd64 libgeoip1 amd64 1.6.12-1 [93.1 kB]

[2020-02-12 16:10:12,231] INFO - Get:14 http://deb.debian.org/debian buster/main amd64 nginx-common all 1.14.2-2+deb10u1 [120 kB]

[2020-02-12 16:10:12,264] INFO - Get:15 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-auth-pam amd64 1.14.2-2+deb10u1 [92.6 kB]

[2020-02-12 16:10:12,285] INFO - Get:16 http://deb.debian.org/debian buster/main amd64 libxslt1.1 amd64 1.1.32-2.2~deb10u1 [237 kB]

|[2020-02-12 16:10:12,326] INFO - Get:17 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-dav-ext amd64 1.14.2-2+deb10u1 [100 kB]

[2020-02-12 16:10:12,378] INFO - Get:18 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-echo amd64 1.14.2-2+deb10u1 [104 kB]

\[2020-02-12 16:10:12,414] INFO - Get:19 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-geoip amd64 1.14.2-2+deb10u1 [93.8 kB]

[2020-02-12 16:10:12,465] INFO - Get:20 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-image-filter amd64 1.14.2-2+deb10u1 [97.4 kB]

-[2020-02-12 16:10:12,511] INFO - Get:21 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-subs-filter amd64 1.14.2-2+deb10u1 [95.7 kB]

[2020-02-12 16:10:12,542] INFO - Get:22 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-upstream-fair amd64 1.14.2-2+deb10u1 [95.7 kB]

[2020-02-12 16:10:12,571] INFO - Get:23 http://deb.debian.org/debian buster/main amd64 libnginx-mod-http-xslt-filter amd64 1.14.2-2+deb10u1 [95.7 kB]

/[2020-02-12 16:10:12,613] INFO - Get:24 http://deb.debian.org/debian buster/main amd64 libnginx-mod-mail amd64 1.14.2-2+deb10u1 [126 kB]

[2020-02-12 16:10:12,634] INFO - Get:25 http://deb.debian.org/debian buster/main amd64 libnginx-mod-stream amd64 1.14.2-2+deb10u1 [147 kB]

[2020-02-12 16:10:12,681] INFO - Get:26 http://deb.debian.org/debian buster/main amd64 nginx-full amd64 1.14.2-2+deb10u1 [501 kB]

\[2020-02-12 16:10:12,833] INFO - Get:27 http://deb.debian.org/debian buster/main amd64 nginx all 1.14.2-2+deb10u1 [88.3 kB]

/[2020-02-12 16:10:13,025] INFO - debconf: delaying package configuration, since apt-utils is not installed

[2020-02-12 16:10:13,060] INFO - Fetched 7787 kB in 2s (3207 kB/s)

[2020-02-12 16:10:13,089] INFO - Selecting previously unselected package fonts-dejavu-core.
(Reading database ... 
(Reading database ... 75% INFO - (Reading database ... 5%
[2020-02-12 16:10:13,094] INFO - (Reading database ... 80%
[2020-02-12 16:10:13,096] INFO - (Reading database ... 85%
[2020-02-12 16:10:13,097] INFO - (Reading database ... 90%
[2020-02-12 16:10:13,099] INFO - (Reading database ... 95%
(Reading database ... 16007 files and directories currently installed.)

[2020-02-12 16:10:13,102] INFO - Preparing to unpack .../00-fonts-dejavu-core_2.37-1_all.deb ...

[2020-02-12 16:10:13,105] INFO - Unpacking fonts-dejavu-core (2.37-1) ...

\[2020-02-12 16:10:13,264] INFO - Selecting previously unselected package fontconfig-config.

[2020-02-12 16:10:13,266] INFO - Preparing to unpack .../01-fontconfig-config_2.13.1-2_all.deb ...

/[2020-02-12 16:10:13,438] INFO - Unpacking fontconfig-config (2.13.1-2) ...

[2020-02-12 16:10:13,481] INFO - Selecting previously unselected package geoip-database.

[2020-02-12 16:10:13,483] INFO - Preparing to unpack .../02-geoip-database_20181108-1_all.deb ...

[2020-02-12 16:10:13,488] INFO - Unpacking geoip-database (20181108-1) ...

/[2020-02-12 16:10:13,843] INFO - Selecting previously unselected package libpng16-16:amd64.

[2020-02-12 16:10:13,846] INFO - Preparing to unpack .../03-libpng16-16_1.6.36-6_amd64.deb ...

[2020-02-12 16:10:13,852] INFO - Unpacking libpng16-16:amd64 (1.6.36-6) ...

[2020-02-12 16:10:13,904] INFO - Selecting previously unselected package libfreetype6:amd64.

[2020-02-12 16:10:13,906] INFO - Preparing to unpack .../04-libfreetype6_2.9.1-3+deb10u1_amd64.deb ...

[2020-02-12 16:10:13,909] INFO - Unpacking libfreetype6:amd64 (2.9.1-3+deb10u1) ...

|[2020-02-12 16:10:13,999] INFO - Selecting previously unselected package libfontconfig1:amd64.

[2020-02-12 16:10:14,000] INFO - Preparing to unpack .../05-libfontconfig1_2.13.1-2_amd64.deb ...

[2020-02-12 16:10:14,004] INFO - Unpacking libfontconfig1:amd64 (2.13.1-2) ...

\[2020-02-12 16:10:14,045] INFO - Selecting previously unselected package libjpeg62-turbo:amd64.

[2020-02-12 16:10:14,048] INFO - Preparing to unpack .../06-libjpeg62-turbo_1%3a1.5.2-2+b1_amd64.deb ...

[2020-02-12 16:10:14,051] INFO - Unpacking libjpeg62-turbo:amd64 (1:1.5.2-2+b1) ...

[2020-02-12 16:10:14,092] INFO - Selecting previously unselected package libjbig0:amd64.

[2020-02-12 16:10:14,095] INFO - Preparing to unpack .../07-libjbig0_2.1-3.1+b2_amd64.deb ...

[2020-02-12 16:10:14,106] INFO - Unpacking libjbig0:amd64 (2.1-3.1+b2) ...

[2020-02-12 16:10:14,138] INFO - Selecting previously unselected package libwebp6:amd64.

[2020-02-12 16:10:14,141] INFO - Preparing to unpack .../08-libwebp6_0.6.1-2_amd64.deb ...

[2020-02-12 16:10:14,143] INFO - Unpacking libwebp6:amd64 (0.6.1-2) ...

-[2020-02-12 16:10:14,193] INFO - Selecting previously unselected package libtiff5:amd64.

[2020-02-12 16:10:14,195] INFO - Preparing to unpack .../09-libtiff5_4.1.0+git191117-2~deb10u1_amd64.deb ...

[2020-02-12 16:10:14,198] INFO - Unpacking libtiff5:amd64 (4.1.0+git191117-2~deb10u1) ...

[2020-02-12 16:10:14,248] INFO - Selecting previously unselected package libxpm4:amd64.

[2020-02-12 16:10:14,250] INFO - Preparing to unpack .../10-libxpm4_1%3a3.5.12-1_amd64.deb ...

/[2020-02-12 16:10:14,252] INFO - Unpacking libxpm4:amd64 (1:3.5.12-1) ...

[2020-02-12 16:10:14,284] INFO - Selecting previously unselected package libgd3:amd64.

[2020-02-12 16:10:14,286] INFO - Preparing to unpack .../11-libgd3_2.2.5-5.2_amd64.deb ...

[2020-02-12 16:10:14,289] INFO - Unpacking libgd3:amd64 (2.2.5-5.2) ...

[2020-02-12 16:10:14,331] INFO - Selecting previously unselected package libgeoip1:amd64.

[2020-02-12 16:10:14,333] INFO - Preparing to unpack .../12-libgeoip1_1.6.12-1_amd64.deb ...

[2020-02-12 16:10:14,336] INFO - Unpacking libgeoip1:amd64 (1.6.12-1) ...

|[2020-02-12 16:10:14,379] INFO - Selecting previously unselected package nginx-common.

[2020-02-12 16:10:14,381] INFO - Preparing to unpack .../13-nginx-common_1.14.2-2+deb10u1_all.deb ...

[2020-02-12 16:10:14,416] INFO - Unpacking nginx-common (1.14.2-2+deb10u1) ...

\[2020-02-12 16:10:14,469] INFO - Selecting previously unselected package libnginx-mod-http-auth-pam.

[2020-02-12 16:10:14,470] INFO - Preparing to unpack .../14-libnginx-mod-http-auth-pam_1.14.2-2+deb10u1_amd64.deb ...
Unpacking libnginx-mod-http-auth-pam (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:14,504] INFO - Selecting previously unselected package libxslt1.1:amd64.

[2020-02-12 16:10:14,506] INFO - Preparing to unpack .../15-libxslt1.1_1.1.32-2.2~deb10u1_amd64.deb ...

[2020-02-12 16:10:14,508] INFO - Unpacking libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...

[2020-02-12 16:10:14,556] INFO - Selecting previously unselected package libnginx-mod-http-dav-ext.

[2020-02-12 16:10:14,557] INFO - Preparing to unpack .../16-libnginx-mod-http-dav-ext_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,560] INFO - Unpacking libnginx-mod-http-dav-ext (1.14.2-2+deb10u1) ...

-[2020-02-12 16:10:14,599] INFO - Selecting previously unselected package libnginx-mod-http-echo.

[2020-02-12 16:10:14,601] INFO - Preparing to unpack .../17-libnginx-mod-http-echo_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,604] INFO - Unpacking libnginx-mod-http-echo (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:14,644] INFO - Selecting previously unselected package libnginx-mod-http-geoip.

[2020-02-12 16:10:14,646] INFO - Preparing to unpack .../18-libnginx-mod-http-geoip_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,649] INFO - Unpacking libnginx-mod-http-geoip (1.14.2-2+deb10u1) ...

/[2020-02-12 16:10:14,684] INFO - Selecting previously unselected package libnginx-mod-http-image-filter.

[2020-02-12 16:10:14,686] INFO - Preparing to unpack .../19-libnginx-mod-http-image-filter_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,689] INFO - Unpacking libnginx-mod-http-image-filter (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:14,733] INFO - Selecting previously unselected package libnginx-mod-http-subs-filter.

[2020-02-12 16:10:14,734] INFO - Preparing to unpack .../20-libnginx-mod-http-subs-filter_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,737] INFO - Unpacking libnginx-mod-http-subs-filter (1.14.2-2+deb10u1) ...

|[2020-02-12 16:10:14,775] INFO - Selecting previously unselected package libnginx-mod-http-upstream-fair.

[2020-02-12 16:10:14,777] INFO - Preparing to unpack .../21-libnginx-mod-http-upstream-fair_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,780] INFO - Unpacking libnginx-mod-http-upstream-fair (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:14,820] INFO - Selecting previously unselected package libnginx-mod-http-xslt-filter.

[2020-02-12 16:10:14,822] INFO - Preparing to unpack .../22-libnginx-mod-http-xslt-filter_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,826] INFO - Unpacking libnginx-mod-http-xslt-filter (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:14,866] INFO - Selecting previously unselected package libnginx-mod-mail.

[2020-02-12 16:10:14,868] INFO - Preparing to unpack .../23-libnginx-mod-mail_1.14.2-2+deb10u1_amd64.deb ...

\[2020-02-12 16:10:14,874] INFO - Unpacking libnginx-mod-mail (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:14,912] INFO - Selecting previously unselected package libnginx-mod-stream.

[2020-02-12 16:10:14,915] INFO - Preparing to unpack .../24-libnginx-mod-stream_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,917] INFO - Unpacking libnginx-mod-stream (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:14,952] INFO - Selecting previously unselected package nginx-full.

[2020-02-12 16:10:14,955] INFO - Preparing to unpack .../25-nginx-full_1.14.2-2+deb10u1_amd64.deb ...

[2020-02-12 16:10:14,957] INFO - Unpacking nginx-full (1.14.2-2+deb10u1) ...

-[2020-02-12 16:10:15,030] INFO - Selecting previously unselected package nginx.

[2020-02-12 16:10:15,032] INFO - Preparing to unpack .../26-nginx_1.14.2-2+deb10u1_all.deb ...

[2020-02-12 16:10:15,034] INFO - Unpacking nginx (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:15,076] INFO - Setting up libxpm4:amd64 (1:3.5.12-1) ...

/[2020-02-12 16:10:15,085] INFO - Setting up nginx-common (1.14.2-2+deb10u1) ...

|[2020-02-12 16:10:15,233] INFO - debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline

-[2020-02-12 16:10:15,485] INFO - Setting up libjbig0:amd64 (2.1-3.1+b2) ...

/[2020-02-12 16:10:15,495] INFO - Setting up libjpeg62-turbo:amd64 (1:1.5.2-2+b1) ...

[2020-02-12 16:10:15,502] INFO - Setting up libnginx-mod-http-auth-pam (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:15,534] INFO - Setting up libpng16-16:amd64 (1.6.36-6) ...

[2020-02-12 16:10:15,545] INFO - Setting up libwebp6:amd64 (0.6.1-2) ...

[2020-02-12 16:10:15,554] INFO - Setting up fonts-dejavu-core (2.37-1) ...

|[2020-02-12 16:10:15,588] INFO - Setting up libnginx-mod-http-echo (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:15,609] INFO - Setting up libnginx-mod-http-subs-filter (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:15,630] INFO - Setting up libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...

[2020-02-12 16:10:15,638] INFO - Setting up libgeoip1:amd64 (1.6.12-1) ...

[2020-02-12 16:10:15,645] INFO - Setting up libtiff5:amd64 (4.1.0+git191117-2~deb10u1) ...

[2020-02-12 16:10:15,652] INFO - Setting up geoip-database (20181108-1) ...

[2020-02-12 16:10:15,659] INFO - Setting up libnginx-mod-http-dav-ext (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:15,680] INFO - Setting up libnginx-mod-mail (1.14.2-2+deb10u1) ...

\[2020-02-12 16:10:15,703] INFO - Setting up fontconfig-config (2.13.1-2) ...

-[2020-02-12 16:10:15,815] INFO - debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline

|[2020-02-12 16:10:16,046] INFO - Setting up libnginx-mod-stream (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:16,068] INFO - Setting up libnginx-mod-http-upstream-fair (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:16,088] INFO - Setting up libnginx-mod-http-xslt-filter (1.14.2-2+deb10u1) ...

\[2020-02-12 16:10:16,106] INFO - Setting up libnginx-mod-http-geoip (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:16,125] INFO - Setting up libfreetype6:amd64 (2.9.1-3+deb10u1) ...

[2020-02-12 16:10:16,134] INFO - Setting up libfontconfig1:amd64 (2.13.1-2) ...

[2020-02-12 16:10:16,138] INFO - Setting up libgd3:amd64 (2.2.5-5.2) ...

[2020-02-12 16:10:16,144] INFO - Setting up libnginx-mod-http-image-filter (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:16,162] INFO - Setting up nginx-full (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:16,173] INFO - invoke-rc.d: could not determine current runlevel

[2020-02-12 16:10:16,178] INFO - invoke-rc.d: policy-rc.d denied execution of start.

[2020-02-12 16:10:16,182] INFO - Setting up nginx (1.14.2-2+deb10u1) ...

[2020-02-12 16:10:16,190] INFO - Processing triggers for libc-bin (2.28-10) ...

-[2020-02-12 16:10:16,236] INFO - + rm -rf /var/lib/apt/lists/auxfiles /var/lib/apt/lists/deb.debian.org_debian_dists_buster-updates_InRelease /var/lib/apt/lists/deb.debian.org_debian_dists_buster-updates_main_binary-amd64_Packages.lz4 /var/lib/apt/lists/deb.debian.org_debian_dists_buster_InRelease /var/lib/apt/lists/deb.debian.org_debian_dists_buster_main_binary-amd64_Packages.lz4 /var/lib/apt/lists/lock /var/lib/apt/lists/partial /var/lib/apt/lists/security.debian.org_debian-security_dists_buster_updates_InRelease /var/lib/apt/lists/security.debian.org_debian-security_dists_buster_updates_main_binary-amd64_Packages.lz4

\[2020-02-12 16:10:18,971] INFO -  ---> 66280bc479d1

[2020-02-12 16:10:18,971] INFO - Step 4/11 : RUN conda install pip numpy scipy       && pip install gunicorn gevent
[2020-02-12 16:10:18,972] INFO - 

-[2020-02-12 16:10:19,119] INFO -  ---> Running in bacdf6f34c9a

/[2020-02-12 16:10:20,438] INFO - Collecting package metadata (current_repodata.json): ...working... 
-[2020-02-12 16:10:22,410] INFO - done
Solving environment: ...working... 
|[2020-02-12 16:10:23,023] INFO - done

\[2020-02-12 16:10:23,076] INFO - 
## Package Plan ##

  environment location: /opt/conda

  added / updated specs:
    - numpy
    - pip
    - scipy


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    blas-1.0                   |              mkl           6 KB
    ca-certificates-2020.1.1   |                0         125 KB
    certifi-2019.11.28         |           py37_0         153 KB
    conda-4.8.2                |           py37_0         2.8 MB
    intel-openmp-2020.0        |              166         756 KB
    libgfortran-ng-7.3.0       |       hdf63c60_0        1006 KB
    mkl-2020.0                 |              166       128.9 MB
    mkl-service-2.3.0          |   py37he904b0f_0         218 KB
    mkl_fft-1.0.15             |   py37ha843d7b_0         154 KB
    mkl_random-1.1.0           |   py37hd6b4f25_0         321 KB
    numpy-1.18.1               |   py37h4f9e942_0           5 KB
    numpy-base-1.18.1          |   py37hde5b4d6_1         4.2 MB
    openssl-1.1.1d             |       h7b6447c_4         2.5 MB
    pip-20.0.2                 |           py37_1         1.7 MB
    scipy-1.4.1                |   py37h0b6359f_0        14.5 MB
    ------------------------------------------------------------
                                           Total:       157.3 MB

The following NEW packages will be INSTALLED:

  blas               pkgs/main/linux-64::blas-1.0-mkl
  intel-openmp       pkgs/main/linux-64::intel-openmp-2020.0-166
  libgfortran-ng     pkgs/main/linux-64::libgfortran-ng-7.3.0-hdf63c60_0
  mkl                pkgs/main/linux-64::mkl-2020.0-166
  mkl-service        pkgs/main/linux-64::mkl-service-2.3.0-py37he904b0f_0
  mkl_fft            pkgs/main/linux-64::mkl_fft-1.0.15-py37ha843d7b_0
  mkl_random         pkgs/main/linux-64::mkl_random-1.1.0-py37hd6b4f25_0
  numpy              pkgs/main/linux-64::numpy-1.18.1-py37h4f9e942_0
  numpy-base         pkgs/main/linux-64::numpy-base-1.18.1-py37hde5b4d6_1
  scipy              pkgs/main/linux-64::scipy-1.4.1-py37h0b6359f_0

The following packages will be UPDATED:

  ca-certificates                               2019.8.28-0 --> 2020.1.1-0
  certifi                                  2019.9.11-py37_0 --> 2019.11.28-py37_0
  conda                                       4.7.12-py37_0 --> 4.8.2-py37_0
  openssl                                 1.1.1d-h7b6447c_2 --> 1.1.1d-h7b6447c_4
  pip                                         19.2.3-py37_0 --> 20.0.2-py37_1


Proceed ([y]/n)? 

[2020-02-12 16:10:23,082] INFO - 
Downloading and Extracting Packages
libgfortran-ng-7.3.0 | 1006 KB   |            |   0% 
libgfortran-ng-7.3.0 | 1006 KB   | 1          |   2% 
libgfortran-ng-7.3.0 | 1006 KB   | #####5     |  56% 
libgfortran-ng-7.3.0 | 1006 KB   | ########## | 100% 
[2020-02-12 16:10:23,449] INFO - 
certifi-2019.11.28   | 153 KB    |            |   0% 
certifi-2019.11.28   | 153 KB    | ########## | 100% 
[2020-02-12 16:10:23,498] INFO - 
numpy-base-1.18.1    | 4.2 MB    |            |   0% 
numpy-base-1.18.1    | 4.2 MB    | 6          |   7% 
numpy-base-1.18.1    | 4.2 MB    | #7         |  17% 
numpy-base-1.18.1    | 4.2 MB    | ##5        |  25% 
numpy-base-1.18.1    | 4.2 MB    | ###4       |  35% 
numpy-base-1.18.1    | 4.2 MB    | #####3     |  53% 
numpy-base-1.18.1    | 4.2 MB    | ######6    |  67% 
numpy-base-1.18.1    | 4.2 MB    | #######4   |  75% 
numpy-base-1.18.1    | 4.2 MB    | #########3 |  94% 
numpy-base-1.18.1    | 4.2 MB    | ########## | 100% 
[2020-02-12 16:10:24,894] INFO - 
mkl_random-1.1.0     | 321 KB    |            |   0% 
mkl_random-1.1.0     | 321 KB    | ########## | 100% 
[2020-02-12 16:10:24,976] INFO - 
mkl-2020.0           | 128.9 MB  |            |   0% 
mkl-2020.0           | 128.9 MB  |            |   0% 
mkl-2020.0           | 128.9 MB  | 1          |   1% 
mkl-2020.0           | 128.9 MB  | 1          |   2% 
mkl-2020.0           | 128.9 MB  | 2          |   2% 
mkl-2020.0           | 128.9 MB  | 3          |   3% 
mkl-2020.0           | 128.9 MB  | 3          |   4% 
mkl-2020.0           | 128.9 MB  | 4          |   4% 
mkl-2020.0           | 128.9 MB  | 4          |   5% 
mkl-2020.0           | 128.9 MB  | 5          |   5% 
mkl-2020.0           | 128.9 MB  | 5          |   6% 
mkl-2020.0           | 128.9 MB  | 6          |   6% 
mkl-2020.0           | 128.9 MB  | 6          |   7% 
mkl-2020.0           | 128.9 MB  | 7          |   7% 
mkl-2020.0           | 128.9 MB  | 8          |   8% 
mkl-2020.0           | 128.9 MB  | 8          |   9% 
mkl-2020.0           | 128.9 MB  | 9          |   9% 
mkl-2020.0           | 128.9 MB  | 9          |  10% 
mkl-2020.0           | 128.9 MB  | #          |  10% 
mkl-2020.0           | 128.9 MB  | #          |  11% 
mkl-2020.0           | 128.9 MB  | #1         |  11% 
mkl-2020.0           | 128.9 MB  | #1         |  12% 
mkl-2020.0           | 128.9 MB  | #2         |  12% 
mkl-2020.0           | 128.9 MB  | #3         |  13% 
mkl-2020.0           | 128.9 MB  | #3         |  13% 
mkl-2020.0           | 128.9 MB  | #3         |  14% 
mkl-2020.0           | 128.9 MB  | #4         |  15% 
mkl-2020.0           | 128.9 MB  | #5         |  16% 
mkl-2020.0           | 128.9 MB  | #5         |  16% 
mkl-2020.0           | 128.9 MB  | #6         |  16% 
mkl-2020.0           | 128.9 MB  | #6         |  17% 
mkl-2020.0           | 128.9 MB  | #7         |  17% 
mkl-2020.0           | 128.9 MB  | #7         |  18% 
mkl-2020.0           | 128.9 MB  | #8         |  19% 
mkl-2020.0           | 128.9 MB  | #9         |  19% 
mkl-2020.0           | 128.9 MB  | #9         |  20% 
mkl-2020.0           | 128.9 MB  | ##         |  20% 
mkl-2020.0           | 128.9 MB  | ##         |  21% 
mkl-2020.0           | 128.9 MB  | ##1        |  21% 
mkl-2020.0           | 128.9 MB  | ##2        |  22% 
mkl-2020.0           | 128.9 MB  | ##2        |  23% 
mkl-2020.0           | 128.9 MB  | ##3        |  23% 
mkl-2020.0           | 128.9 MB  | ##4        |  24% 
mkl-2020.0           | 128.9 MB  | ##4        |  25% 
mkl-2020.0           | 128.9 MB  | ##5        |  26% 
mkl-2020.0           | 128.9 MB  | ##6        |  26% 
mkl-2020.0           | 128.9 MB  | ##7        |  27% 
mkl-2020.0           | 128.9 MB  | ##8        |  28% 
mkl-2020.0           | 128.9 MB  | ##8        |  29% 
mkl-2020.0           | 128.9 MB  | ##9        |  30% 
mkl-2020.0           | 128.9 MB  | ###        |  30% 
mkl-2020.0           | 128.9 MB  | ###1       |  31% 
mkl-2020.0           | 128.9 MB  | ###1       |  32% 
mkl-2020.0           | 128.9 MB  | ###2       |  33% 
mkl-2020.0           | 128.9 MB  | ###3       |  33% 
mkl-2020.0           | 128.9 MB  | ###4       |  34% 
mkl-2020.0           | 128.9 MB  | ###4       |  35% 
mkl-2020.0           | 128.9 MB  | ###5       |  36% 
mkl-2020.0           | 128.9 MB  | ###6       |  36% 
mkl-2020.0           | 128.9 MB  | ###7       |  37% 
mkl-2020.0           | 128.9 MB  | ###7       |  38% 
mkl-2020.0           | 128.9 MB  | ###8       |  38% 
mkl-2020.0           | 128.9 MB  | ###8       |  39% 
mkl-2020.0           | 128.9 MB  | ###9       |  40% 
mkl-2020.0           | 128.9 MB  | ####       |  40% 
mkl-2020.0           | 128.9 MB  | ####       |  41% 
mkl-2020.0           | 128.9 MB  | ####1      |  41% 
mkl-2020.0           | 128.9 MB  | ####2      |  42% 
mkl-2020.0           | 128.9 MB  | ####2      |  43% 
mkl-2020.0           | 128.9 MB  | ####3      |  44% 
mkl-2020.0           | 128.9 MB  | ####4      |  44% 
mkl-2020.0           | 128.9 MB  | ####5      |  45% 
mkl-2020.0           | 128.9 MB  | ####5      |  46% 
mkl-2020.0           | 128.9 MB  | ####6      |  47% 
mkl-2020.0           | 128.9 MB  | ####7      |  47% 
mkl-2020.0           | 128.9 MB  | ####8      |  48% 
mkl-2020.0           | 128.9 MB  | ####9      |  49% 
mkl-2020.0           | 128.9 MB  | ####9      |  50% 
mkl-2020.0           | 128.9 MB  | #####      |  51% 
mkl-2020.0           | 128.9 MB  | #####1     |  52% 
mkl-2020.0           | 128.9 MB  | #####2     |  52% 
mkl-2020.0           | 128.9 MB  | #####3     |  53% 
mkl-2020.0           | 128.9 MB  | #####3     |  54% 
mkl-2020.0           | 128.9 MB  | #####4     |  55% 
mkl-2020.0           | 128.9 MB  | #####5     |  56% 
mkl-2020.0           | 128.9 MB  | #####6     |  56% 
mkl-2020.0           | 128.9 MB  | #####7     |  57% 
mkl-2020.0           | 128.9 MB  | #####7     |  58% 
mkl-2020.0           | 128.9 MB  | #####8     |  59% 
mkl-2020.0           | 128.9 MB  | #####9     |  60% 
mkl-2020.0           | 128.9 MB  | ######     |  60% 
mkl-2020.0           | 128.9 MB  | ######1    |  61% 
mkl-2020.0           | 128.9 MB  | ######1    |  62% 
mkl-2020.0           | 128.9 MB  | ######2    |  63% 
mkl-2020.0           | 128.9 MB  | ######3    |  64% 
mkl-2020.0           | 128.9 MB  | ######4    |  64% 
mkl-2020.0           | 128.9 MB  | ######5    |  65% 
mkl-2020.0           | 128.9 MB  | ######6    |  66% 
mkl-2020.0           | 128.9 MB  | ######7    |  67% 
mkl-2020.0           | 128.9 MB  | ######7    |  68% 
mkl-2020.0           | 128.9 MB  | ######8    |  69% 
mkl-2020.0           | 128.9 MB  | ######9    |  70% 
mkl-2020.0           | 128.9 MB  | #######    |  70% 
mkl-2020.0           | 128.9 MB  | #######1   |  71% 
mkl-2020.0           | 128.9 MB  | #######1   |  72% 
mkl-2020.0           | 128.9 MB  | #######2   |  73% 
mkl-2020.0           | 128.9 MB  | #######3   |  73% 
mkl-2020.0           | 128.9 MB  | #######4   |  74% 
mkl-2020.0           | 128.9 MB  | #######5   |  75% 
mkl-2020.0           | 128.9 MB  | #######5   |  76% 
mkl-2020.0           | 128.9 MB  | #######6   |  77% 
mkl-2020.0           | 128.9 MB  | #######7   |  77% 
mkl-2020.0           | 128.9 MB  | #######8   |  78% 
mkl-2020.0           | 128.9 MB  | #######8   |  79% 
mkl-2020.0           | 128.9 MB  | #######9   |  80% 
mkl-2020.0           | 128.9 MB  | ########   |  81% 
mkl-2020.0           | 128.9 MB  | ########1  |  81% 
mkl-2020.0           | 128.9 MB  | ########2  |  82% 
mkl-2020.0           | 128.9 MB  | ########2  |  83% 
mkl-2020.0           | 128.9 MB  | ########3  |  84% 
mkl-2020.0           | 128.9 MB  | ########4  |  85% 
mkl-2020.0           | 128.9 MB  | ########5  |  85% 
mkl-2020.0           | 128.9 MB  | ########6  |  86% 
mkl-2020.0           | 128.9 MB  | ########6  |  87% 
mkl-2020.0           | 128.9 MB  | ########7  |  88% 
mkl-2020.0           | 128.9 MB  | ########8  |  88% 
mkl-2020.0           | 128.9 MB  | ########9  |  89% 
mkl-2020.0           | 128.9 MB  | ########9  |  90% 
mkl-2020.0           | 128.9 MB  | #########  |  91% 
mkl-2020.0           | 128.9 MB  | #########1 |  91% 
mkl-2020.0           | 128.9 MB  | #########2 |  92% 
mkl-2020.0           | 128.9 MB  | #########2 |  93% 
mkl-2020.0           | 128.9 MB  | #########3 |  94% 
mkl-2020.0           | 128.9 MB  | #########4 |  95% 
mkl-2020.0           | 128.9 MB  | #########5 |  96% 
mkl-2020.0           | 128.9 MB  | #########6 |  96% 
mkl-2020.0           | 128.9 MB  | #########7 |  97% 
mkl-2020.0           | 128.9 MB  | #########8 |  98% 
mkl-2020.0           | 128.9 MB  | #########9 |  99% 
mkl-2020.0           | 128.9 MB  | #########9 | 100% 
mkl-2020.0           | 128.9 MB  | ########## | 100% 
[2020-02-12 16:10:45,161] INFO - 
numpy-1.18.1         | 5 KB      |            |   0% 
numpy-1.18.1         | 5 KB      | ########## | 100% 
[2020-02-12 16:10:45,196] INFO - 
pip-20.0.2           | 1.7 MB    |            |   0% 
pip-20.0.2           | 1.7 MB    | #####3     |  54% 
pip-20.0.2           | 1.7 MB    | ########## | 100% 
[2020-02-12 16:10:45,453] INFO - 
scipy-1.4.1          | 14.5 MB   |            |   0% 
scipy-1.4.1          | 14.5 MB   | 5          |   6% 
scipy-1.4.1          | 14.5 MB   | #2         |  12% 
scipy-1.4.1          | 14.5 MB   | #8         |  18% 
scipy-1.4.1          | 14.5 MB   | ##6        |  26% 
scipy-1.4.1          | 14.5 MB   | ###4       |  34% 
scipy-1.4.1          | 14.5 MB   | ####1      |  41% 
scipy-1.4.1          | 14.5 MB   | ####9      |  50% 
scipy-1.4.1          | 14.5 MB   | #####6     |  56% 
scipy-1.4.1          | 14.5 MB   | ######2    |  62% 
scipy-1.4.1          | 14.5 MB   | ######9    |  69% 
scipy-1.4.1          | 14.5 MB   | #######5   |  76% 
scipy-1.4.1          | 14.5 MB   | ########2  |  82% 
scipy-1.4.1          | 14.5 MB   | ########7  |  88% 
scipy-1.4.1          | 14.5 MB   | #########5 |  96% 
scipy-1.4.1          | 14.5 MB   | ########## | 100% 
[2020-02-12 16:10:47,798] INFO - 
ca-certificates-2020 | 125 KB    |            |   0% 
ca-certificates-2020 | 125 KB    | ########## | 100% 
[2020-02-12 16:10:47,830] INFO - 
mkl-service-2.3.0    | 218 KB    |            |   0% 
mkl-service-2.3.0    | 218 KB    | ########## | 100% 
[2020-02-12 16:10:47,888] INFO - 
openssl-1.1.1d       | 2.5 MB    |            |   0% 
openssl-1.1.1d       | 2.5 MB    | ###1       |  32% 
openssl-1.1.1d       | 2.5 MB    | ######3    |  63% 
openssl-1.1.1d       | 2.5 MB    | #########6 |  97% 
openssl-1.1.1d       | 2.5 MB    | ########## | 100% 
[2020-02-12 16:10:48,291] INFO - 
intel-openmp-2020.0  | 756 KB    |            |   0% 
intel-openmp-2020.0  | 756 KB    | ########## | 100% 
[2020-02-12 16:10:48,402] INFO - 
mkl_fft-1.0.15       | 154 KB    |            |   0% 
mkl_fft-1.0.15       | 154 KB    | ########## | 100% 
[2020-02-12 16:10:48,442] INFO - 
blas-1.0             | 6 KB      |            |   0% 
blas-1.0             | 6 KB      | ########## | 100% 
[2020-02-12 16:10:48,469] INFO - 
conda-4.8.2          | 2.8 MB    |            |   0% 
conda-4.8.2          | 2.8 MB    | 1          |   2% 
conda-4.8.2          | 2.8 MB    | ####3      |  44% 
conda-4.8.2          | 2.8 MB    | ########5  |  85% 
conda-4.8.2          | 2.8 MB    | ########## | 100% 
Preparing transaction: ...working... 
|[2020-02-12 16:10:49,180] INFO - done
Verifying transaction: ...working... 
\[2020-02-12 16:10:49,718] INFO - done
Executing transaction: ...working... 
\[2020-02-12 16:10:52,144] INFO - done

\[2020-02-12 16:10:53,332] INFO - Collecting gunicorn

[2020-02-12 16:10:53,389] INFO -   Downloading gunicorn-20.0.4-py2.py3-none-any.whl (77 kB)

|[2020-02-12 16:10:53,699] INFO - Collecting gevent

\[2020-02-12 16:10:53,744] INFO -   Downloading gevent-1.4.0-cp37-cp37m-manylinux1_x86_64.whl (5.4 MB)

/[2020-02-12 16:10:55,209] INFO - Requirement already satisfied: setuptools>=3.0 in /opt/conda/lib/python3.7/site-packages (from gunicorn) (41.4.0)

|[2020-02-12 16:10:55,339] INFO - Collecting greenlet>=0.4.14; platform_python_implementation == "CPython"

\[2020-02-12 16:10:55,351] INFO -   Downloading greenlet-0.4.15-cp37-cp37m-manylinux1_x86_64.whl (42 kB)

-[2020-02-12 16:10:55,476] INFO - Installing collected packages: gunicorn, greenlet, gevent

\[2020-02-12 16:10:56,194] INFO - Successfully installed gevent-1.4.0 greenlet-0.4.15 gunicorn-20.0.4

\[2020-02-12 16:11:10,482] INFO -  ---> 1dbfc408f11d

[2020-02-12 16:11:10,482] INFO - Step 5/11 : COPY . /opt/program
[2020-02-12 16:11:10,483] INFO - 

-[2020-02-12 16:11:11,005] INFO -  ---> 471b4799ac1e

[2020-02-12 16:11:11,006] INFO - Step 6/11 : WORKDIR /opt/program
[2020-02-12 16:11:11,006] INFO - 

/[2020-02-12 16:11:11,124] INFO -  ---> Running in 5bb3809484a3

/[2020-02-12 16:11:11,480] INFO -  ---> 42c8f7c329cd

[2020-02-12 16:11:11,480] INFO - Step 7/11 : RUN conda env update -n base -f /opt/program/environment.yml
[2020-02-12 16:11:11,480] INFO - 

|[2020-02-12 16:11:11,617] INFO -  ---> Running in 67c4de487b3f

|[2020-02-12 16:11:13,202] INFO - Collecting package metadata (repodata.json): ...working... 
|[2020-02-12 16:11:18,151] INFO - done
Solving environment: ...working... 
\[2020-02-12 16:11:23,122] INFO - done

-[2020-02-12 16:11:23,207] INFO - 
Downloading and Extracting Packages
h2o-3.18.0.2         | 118.2 MB  |            |   0% 
h2o-3.18.0.2         | 118.2 MB  |            |   0% 
h2o-3.18.0.2         | 118.2 MB  |            |   0% 
h2o-3.18.0.2         | 118.2 MB  | 1          |   1% 
h2o-3.18.0.2         | 118.2 MB  | 1          |   2% 
h2o-3.18.0.2         | 118.2 MB  | 2          |   2% 
h2o-3.18.0.2         | 118.2 MB  | 2          |   3% 
h2o-3.18.0.2         | 118.2 MB  | 3          |   3% 
h2o-3.18.0.2         | 118.2 MB  | 3          |   4% 
h2o-3.18.0.2         | 118.2 MB  | 5          |   5% 
h2o-3.18.0.2         | 118.2 MB  | 5          |   6% 
h2o-3.18.0.2         | 118.2 MB  | 6          |   6% 
h2o-3.18.0.2         | 118.2 MB  | 7          |   7% 
h2o-3.18.0.2         | 118.2 MB  | 7          |   8% 
h2o-3.18.0.2         | 118.2 MB  | 8          |   8% 
h2o-3.18.0.2         | 118.2 MB  | 9          |   9% 
h2o-3.18.0.2         | 118.2 MB  | 9          |  10% 
h2o-3.18.0.2         | 118.2 MB  | #          |  11% 
h2o-3.18.0.2         | 118.2 MB  | #1         |  11% 
h2o-3.18.0.2         | 118.2 MB  | #2         |  12% 
h2o-3.18.0.2         | 118.2 MB  | #2         |  13% 
h2o-3.18.0.2         | 118.2 MB  | #3         |  13% 
h2o-3.18.0.2         | 118.2 MB  | #3         |  14% 
h2o-3.18.0.2         | 118.2 MB  | #4         |  15% 
h2o-3.18.0.2         | 118.2 MB  | #5         |  15% 
h2o-3.18.0.2         | 118.2 MB  | #6         |  16% 
h2o-3.18.0.2         | 118.2 MB  | #7         |  17% 
h2o-3.18.0.2         | 118.2 MB  | #7         |  18% 
h2o-3.18.0.2         | 118.2 MB  | #8         |  18% 
h2o-3.18.0.2         | 118.2 MB  | #8         |  19% 
h2o-3.18.0.2         | 118.2 MB  | #9         |  20% 
h2o-3.18.0.2         | 118.2 MB  | ##         |  20% 
h2o-3.18.0.2         | 118.2 MB  | ##         |  21% 
h2o-3.18.0.2         | 118.2 MB  | ##1        |  22% 
h2o-3.18.0.2         | 118.2 MB  | ##2        |  23% 
h2o-3.18.0.2         | 118.2 MB  | ##3        |  23% 
h2o-3.18.0.2         | 118.2 MB  | ##4        |  24% 
h2o-3.18.0.2         | 118.2 MB  | ##4        |  25% 
h2o-3.18.0.2         | 118.2 MB  | ##5        |  26% 
h2o-3.18.0.2         | 118.2 MB  | ##6        |  27% 
h2o-3.18.0.2         | 118.2 MB  | ##7        |  28% 
h2o-3.18.0.2         | 118.2 MB  | ##8        |  28% 
h2o-3.18.0.2         | 118.2 MB  | ##9        |  29% 
h2o-3.18.0.2         | 118.2 MB  | ##9        |  30% 
h2o-3.18.0.2         | 118.2 MB  | ###        |  31% 
h2o-3.18.0.2         | 118.2 MB  | ###1       |  32% 
h2o-3.18.0.2         | 118.2 MB  | ###2       |  32% 
h2o-3.18.0.2         | 118.2 MB  | ###2       |  33% 
h2o-3.18.0.2         | 118.2 MB  | ###3       |  34% 
h2o-3.18.0.2         | 118.2 MB  | ###4       |  35% 
h2o-3.18.0.2         | 118.2 MB  | ###5       |  35% 
h2o-3.18.0.2         | 118.2 MB  | ###6       |  36% 
h2o-3.18.0.2         | 118.2 MB  | ###7       |  37% 
h2o-3.18.0.2         | 118.2 MB  | ###7       |  38% 
h2o-3.18.0.2         | 118.2 MB  | ###9       |  39% 
h2o-3.18.0.2         | 118.2 MB  | ####       |  40% 
h2o-3.18.0.2         | 118.2 MB  | ####       |  41% 
h2o-3.18.0.2         | 118.2 MB  | ####1      |  41% 
h2o-3.18.0.2         | 118.2 MB  | ####2      |  42% 
h2o-3.18.0.2         | 118.2 MB  | ####2      |  43% 
h2o-3.18.0.2         | 118.2 MB  | ####3      |  44% 
h2o-3.18.0.2         | 118.2 MB  | ####4      |  44% 
h2o-3.18.0.2         | 118.2 MB  | ####4      |  45% 
h2o-3.18.0.2         | 118.2 MB  | ####5      |  45% 
h2o-3.18.0.2         | 118.2 MB  | ####5      |  46% 
h2o-3.18.0.2         | 118.2 MB  | ####6      |  47% 
h2o-3.18.0.2         | 118.2 MB  | ####7      |  47% 
h2o-3.18.0.2         | 118.2 MB  | ####8      |  48% 
h2o-3.18.0.2         | 118.2 MB  | ####8      |  49% 
h2o-3.18.0.2         | 118.2 MB  | ####9      |  49% 
h2o-3.18.0.2         | 118.2 MB  | ####9      |  50% 
h2o-3.18.0.2         | 118.2 MB  | #####      |  50% 
h2o-3.18.0.2         | 118.2 MB  | #####1     |  51% 
h2o-3.18.0.2         | 118.2 MB  | #####1     |  52% 
h2o-3.18.0.2         | 118.2 MB  | #####2     |  52% 
h2o-3.18.0.2         | 118.2 MB  | #####3     |  54% 
h2o-3.18.0.2         | 118.2 MB  | #####4     |  55% 
h2o-3.18.0.2         | 118.2 MB  | #####5     |  55% 
h2o-3.18.0.2         | 118.2 MB  | #####6     |  56% 
h2o-3.18.0.2         | 118.2 MB  | #####6     |  57% 
h2o-3.18.0.2         | 118.2 MB  | #####7     |  58% 
h2o-3.18.0.2         | 118.2 MB  | #####8     |  58% 
h2o-3.18.0.2         | 118.2 MB  | #####8     |  59% 
h2o-3.18.0.2         | 118.2 MB  | #####9     |  59% 
h2o-3.18.0.2         | 118.2 MB  | ######     |  60% 
h2o-3.18.0.2         | 118.2 MB  | ######     |  61% 
h2o-3.18.0.2         | 118.2 MB  | ######1    |  62% 
h2o-3.18.0.2         | 118.2 MB  | ######2    |  62% 
h2o-3.18.0.2         | 118.2 MB  | ######3    |  63% 
h2o-3.18.0.2         | 118.2 MB  | ######3    |  64% 
h2o-3.18.0.2         | 118.2 MB  | ######4    |  64% 
h2o-3.18.0.2         | 118.2 MB  | ######4    |  65% 
h2o-3.18.0.2         | 118.2 MB  | ######5    |  66% 
h2o-3.18.0.2         | 118.2 MB  | ######6    |  66% 
h2o-3.18.0.2         | 118.2 MB  | ######6    |  67% 
h2o-3.18.0.2         | 118.2 MB  | ######7    |  68% 
h2o-3.18.0.2         | 118.2 MB  | ######8    |  68% 
h2o-3.18.0.2         | 118.2 MB  | ######9    |  70% 
h2o-3.18.0.2         | 118.2 MB  | #######    |  70% 
h2o-3.18.0.2         | 118.2 MB  | #######1   |  71% 
h2o-3.18.0.2         | 118.2 MB  | #######2   |  72% 
h2o-3.18.0.2         | 118.2 MB  | #######2   |  73% 
h2o-3.18.0.2         | 118.2 MB  | #######3   |  74% 
h2o-3.18.0.2         | 118.2 MB  | #######4   |  75% 
h2o-3.18.0.2         | 118.2 MB  | #######5   |  75% 
h2o-3.18.0.2         | 118.2 MB  | #######6   |  76% 
h2o-3.18.0.2         | 118.2 MB  | #######7   |  77% 
h2o-3.18.0.2         | 118.2 MB  | #######8   |  78% 
h2o-3.18.0.2         | 118.2 MB  | #######8   |  79% 
h2o-3.18.0.2         | 118.2 MB  | #######9   |  79% 
h2o-3.18.0.2         | 118.2 MB  | ########   |  80% 
h2o-3.18.0.2         | 118.2 MB  | ########1  |  81% 
h2o-3.18.0.2         | 118.2 MB  | ########1  |  82% 
h2o-3.18.0.2         | 118.2 MB  | ########2  |  82% 
h2o-3.18.0.2         | 118.2 MB  | ########3  |  83% 
h2o-3.18.0.2         | 118.2 MB  | ########3  |  84% 
h2o-3.18.0.2         | 118.2 MB  | ########4  |  85% 
h2o-3.18.0.2         | 118.2 MB  | ########5  |  85% 
h2o-3.18.0.2         | 118.2 MB  | ########6  |  86% 
h2o-3.18.0.2         | 118.2 MB  | ########6  |  87% 
h2o-3.18.0.2         | 118.2 MB  | ########7  |  87% 
h2o-3.18.0.2         | 118.2 MB  | ########7  |  88% 
h2o-3.18.0.2         | 118.2 MB  | ########8  |  88% 
h2o-3.18.0.2         | 118.2 MB  | ########9  |  89% 
h2o-3.18.0.2         | 118.2 MB  | #########  |  90% 
h2o-3.18.0.2         | 118.2 MB  | #########  |  90% 
h2o-3.18.0.2         | 118.2 MB  | #########1 |  91% 
h2o-3.18.0.2         | 118.2 MB  | #########1 |  92% 
h2o-3.18.0.2         | 118.2 MB  | #########2 |  92% 
h2o-3.18.0.2         | 118.2 MB  | #########3 |  93% 
h2o-3.18.0.2         | 118.2 MB  | #########4 |  94% 
h2o-3.18.0.2         | 118.2 MB  | #########5 |  95% 
h2o-3.18.0.2         | 118.2 MB  | #########6 |  96% 
h2o-3.18.0.2         | 118.2 MB  | #########6 |  97% 
h2o-3.18.0.2         | 118.2 MB  | #########7 |  98% 
h2o-3.18.0.2         | 118.2 MB  | #########8 |  99% 
h2o-3.18.0.2         | 118.2 MB  | #########9 |  99% 
h2o-3.18.0.2         | 118.2 MB  | ########## | 100% 
[2020-02-12 16:11:46,798] INFO - 
openjdk-8.0.152      | 57.9 MB   |            |   0% 
openjdk-8.0.152      | 57.9 MB   | 1          |   1% 
openjdk-8.0.152      | 57.9 MB   | 3          |   3% 
openjdk-8.0.152      | 57.9 MB   | 5          |   5% 
openjdk-8.0.152      | 57.9 MB   | 7          |   7% 
openjdk-8.0.152      | 57.9 MB   | 8          |   9% 
openjdk-8.0.152      | 57.9 MB   | #          |  11% 
openjdk-8.0.152      | 57.9 MB   | #2         |  13% 
openjdk-8.0.152      | 57.9 MB   | #4         |  15% 
openjdk-8.0.152      | 57.9 MB   | #6         |  16% 
openjdk-8.0.152      | 57.9 MB   | #8         |  19% 
openjdk-8.0.152      | 57.9 MB   | ##         |  20% 
openjdk-8.0.152      | 57.9 MB   | ##1        |  22% 
openjdk-8.0.152      | 57.9 MB   | ##3        |  24% 
openjdk-8.0.152      | 57.9 MB   | ##4        |  25% 
openjdk-8.0.152      | 57.9 MB   | ##7        |  27% 
openjdk-8.0.152      | 57.9 MB   | ##9        |  29% 
openjdk-8.0.152      | 57.9 MB   | ###1       |  31% 
openjdk-8.0.152      | 57.9 MB   | ###3       |  33% 
openjdk-8.0.152      | 57.9 MB   | ###5       |  35% 
openjdk-8.0.152      | 57.9 MB   | ###7       |  37% 
openjdk-8.0.152      | 57.9 MB   | ###8       |  39% 
openjdk-8.0.152      | 57.9 MB   | ####1      |  41% 
openjdk-8.0.152      | 57.9 MB   | ####3      |  43% 
openjdk-8.0.152      | 57.9 MB   | ####5      |  45% 
openjdk-8.0.152      | 57.9 MB   | ####7      |  47% 
openjdk-8.0.152      | 57.9 MB   | ####9      |  49% 
openjdk-8.0.152      | 57.9 MB   | #####1     |  51% 
openjdk-8.0.152      | 57.9 MB   | #####2     |  53% 
openjdk-8.0.152      | 57.9 MB   | #####4     |  55% 
openjdk-8.0.152      | 57.9 MB   | #####6     |  57% 
openjdk-8.0.152      | 57.9 MB   | #####8     |  59% 
openjdk-8.0.152      | 57.9 MB   | ######     |  61% 
openjdk-8.0.152      | 57.9 MB   | ######2    |  63% 
openjdk-8.0.152      | 57.9 MB   | ######4    |  65% 
openjdk-8.0.152      | 57.9 MB   | ######6    |  66% 
openjdk-8.0.152      | 57.9 MB   | ######7    |  68% 
openjdk-8.0.152      | 57.9 MB   | ######9    |  70% 
openjdk-8.0.152      | 57.9 MB   | #######1   |  72% 
openjdk-8.0.152      | 57.9 MB   | #######3   |  74% 
openjdk-8.0.152      | 57.9 MB   | #######5   |  76% 
openjdk-8.0.152      | 57.9 MB   | #######7   |  77% 
openjdk-8.0.152      | 57.9 MB   | #######8   |  79% 
openjdk-8.0.152      | 57.9 MB   | ########1  |  81% 
openjdk-8.0.152      | 57.9 MB   | ########2  |  83% 
openjdk-8.0.152      | 57.9 MB   | ########4  |  85% 
openjdk-8.0.152      | 57.9 MB   | ########6  |  86% 
openjdk-8.0.152      | 57.9 MB   | ########7  |  88% 
openjdk-8.0.152      | 57.9 MB   | ########9  |  89% 
openjdk-8.0.152      | 57.9 MB   | #########  |  91% 
openjdk-8.0.152      | 57.9 MB   | #########2 |  92% 
openjdk-8.0.152      | 57.9 MB   | #########4 |  94% 
openjdk-8.0.152      | 57.9 MB   | #########6 |  97% 
openjdk-8.0.152      | 57.9 MB   | #########8 |  98% 
openjdk-8.0.152      | 57.9 MB   | ########## | 100% 
[2020-02-12 16:11:55,062] INFO - 
python-3.7.3         | 32.1 MB   |            |   0% 
python-3.7.3         | 32.1 MB   | 2          |   3% 
python-3.7.3         | 32.1 MB   | 6          |   6% 
python-3.7.3         | 32.1 MB   | 9          |   9% 
python-3.7.3         | 32.1 MB   | #1         |  12% 
python-3.7.3         | 32.1 MB   | #4         |  14% 
python-3.7.3         | 32.1 MB   | #8         |  18% 
python-3.7.3         | 32.1 MB   | ##2        |  22% 
python-3.7.3         | 32.1 MB   | ##5        |  26% 
python-3.7.3         | 32.1 MB   | ##8        |  29% 
python-3.7.3         | 32.1 MB   | ###1       |  32% 
python-3.7.3         | 32.1 MB   | ###5       |  36% 
python-3.7.3         | 32.1 MB   | ###9       |  39% 
python-3.7.3         | 32.1 MB   | ####2      |  43% 
python-3.7.3         | 32.1 MB   | ####6      |  46% 
python-3.7.3         | 32.1 MB   | ####9      |  50% 
python-3.7.3         | 32.1 MB   | #####3     |  53% 
python-3.7.3         | 32.1 MB   | #####6     |  57% 
python-3.7.3         | 32.1 MB   | ######     |  60% 
python-3.7.3         | 32.1 MB   | ######3    |  64% 
python-3.7.3         | 32.1 MB   | ######7    |  67% 
python-3.7.3         | 32.1 MB   | #######    |  71% 
python-3.7.3         | 32.1 MB   | #######4   |  74% 
python-3.7.3         | 32.1 MB   | #######6   |  77% 
python-3.7.3         | 32.1 MB   | ########   |  81% 
python-3.7.3         | 32.1 MB   | ########4  |  84% 
python-3.7.3         | 32.1 MB   | ########7  |  88% 
python-3.7.3         | 32.1 MB   | #########1 |  91% 
python-3.7.3         | 32.1 MB   | #########4 |  94% 
python-3.7.3         | 32.1 MB   | #########7 |  98% 
python-3.7.3         | 32.1 MB   | ########## | 100% 
[2020-02-12 16:11:59,109] INFO - 
Preparing transaction: ...working... 
-[2020-02-12 16:11:59,238] INFO - done

[2020-02-12 16:11:59,238] INFO - Verifying transaction: 
[2020-02-12 16:11:59,238] INFO - ...working... 
/[2020-02-12 16:11:59,797] INFO - done
Executing transaction: ...working... 
|[2020-02-12 16:12:03,512] INFO - done

|[2020-02-12 16:12:03,980] INFO - #
# To activate this environment, use
#
#     $ conda activate base
#
# To deactivate an active environment, use
#
#     $ conda deactivate


/[2020-02-12 16:12:14,827] INFO -  ---> 8bbaef7f9ac1

[2020-02-12 16:12:14,829] INFO - Step 8/11 : RUN pip install -r /opt/program/requirements.txt
[2020-02-12 16:12:14,829] INFO - 

|[2020-02-12 16:12:14,973] INFO -  ---> Running in f87fe33012be

-[2020-02-12 16:12:16,383] INFO - Collecting bentoml==0.6.2

/[2020-02-12 16:12:16,448] INFO -   Downloading BentoML-0.6.2-py3-none-any.whl (554 kB)

|[2020-02-12 16:12:16,981] INFO - Collecting pandas

[2020-02-12 16:12:16,991] INFO -   Downloading pandas-1.0.1-cp37-cp37m-manylinux1_x86_64.whl (10.1 MB)

\[2020-02-12 16:12:18,757] INFO - Collecting h2o==3.24.0.2

[2020-02-12 16:12:18,767] INFO -   Downloading h2o-3.24.0.2.tar.gz (121.0 MB)

|[2020-02-12 16:12:41,085] INFO - Collecting flask

[2020-02-12 16:12:41,095] INFO -   Downloading Flask-1.1.1-py2.py3-none-any.whl (94 kB)

\[2020-02-12 16:12:41,206] INFO - Collecting alembic

[2020-02-12 16:12:41,221] INFO -   Downloading alembic-1.4.0.tar.gz (1.1 MB)

\[2020-02-12 16:12:41,960] INFO - Collecting protobuf>=3.6.0

[2020-02-12 16:12:41,982] INFO -   Downloading protobuf-3.11.3-cp37-cp37m-manylinux1_x86_64.whl (1.3 MB)

-[2020-02-12 16:12:42,897] INFO - Collecting boto3

[2020-02-12 16:12:42,909] INFO -   Downloading boto3-1.11.16-py2.py3-none-any.whl (128 kB)

[2020-02-12 16:12:42,959] INFO - Requirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (1.18.1)

/[2020-02-12 16:12:43,011] INFO - Collecting python-dateutil<2.8.1,>=2.1

[2020-02-12 16:12:43,026] INFO -   Downloading python_dateutil-2.8.0-py2.py3-none-any.whl (226 kB)

|[2020-02-12 16:12:43,121] INFO - Collecting click>=7.0

[2020-02-12 16:12:43,132] INFO -   Downloading Click-7.0-py2.py3-none-any.whl (81 kB)

\[2020-02-12 16:12:43,212] INFO - Collecting tabulate

[2020-02-12 16:12:43,220] INFO -   Downloading tabulate-0.8.6.tar.gz (45 kB)

|[2020-02-12 16:12:43,538] INFO - Collecting packaging

[2020-02-12 16:12:43,548] INFO -   Downloading packaging-20.1-py2.py3-none-any.whl (36 kB)

\[2020-02-12 16:12:43,620] INFO - Collecting configparser

[2020-02-12 16:12:43,636] INFO -   Downloading configparser-4.0.2-py2.py3-none-any.whl (22 kB)

-[2020-02-12 16:12:43,695] INFO - Collecting cerberus

[2020-02-12 16:12:43,706] INFO -   Downloading Cerberus-1.3.2.tar.gz (52 kB)

|[2020-02-12 16:12:43,964] INFO - Requirement already satisfied: gunicorn in /opt/conda/lib/python3.7/site-packages (from bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (20.0.4)

\[2020-02-12 16:12:44,044] INFO - Collecting docker

[2020-02-12 16:12:44,056] INFO -   Downloading docker-4.2.0-py2.py3-none-any.whl (143 kB)

-[2020-02-12 16:12:44,154] INFO - Collecting python-json-logger

[2020-02-12 16:12:44,169] INFO -   Downloading python-json-logger-0.1.11.tar.gz (6.0 kB)

/[2020-02-12 16:12:45,050] INFO - Collecting ruamel.yaml>=0.15.0

[2020-02-12 16:12:45,061] INFO -   Downloading ruamel.yaml-0.16.10-py2.py3-none-any.whl (111 kB)

\[2020-02-12 16:12:45,228] INFO - Collecting sqlalchemy>=1.3.0

[2020-02-12 16:12:45,242] INFO -   Downloading SQLAlchemy-1.3.13.tar.gz (6.0 MB)

\[2020-02-12 16:12:48,118] INFO - Requirement already satisfied: requests in /opt/conda/lib/python3.7/site-packages (from bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (2.22.0)

-[2020-02-12 16:12:48,235] INFO - Collecting humanfriendly

[2020-02-12 16:12:48,249] INFO -   Downloading humanfriendly-6.1-py2.py3-none-any.whl (75 kB)

-[2020-02-12 16:12:49,095] INFO - Collecting grpcio

[2020-02-12 16:12:49,109] INFO -   Downloading grpcio-1.27.1-cp37-cp37m-manylinux2010_x86_64.whl (2.7 MB)

/[2020-02-12 16:12:49,604] INFO - Collecting prometheus-client

[2020-02-12 16:12:49,617] INFO -   Downloading prometheus_client-0.7.1.tar.gz (38 kB)

|[2020-02-12 16:12:50,081] INFO - Collecting pytz>=2017.2

[2020-02-12 16:12:50,099] INFO -   Downloading pytz-2019.3-py2.py3-none-any.whl (509 kB)

/[2020-02-12 16:12:50,375] INFO - Collecting future

[2020-02-12 16:12:50,394] INFO -   Downloading future-0.18.2.tar.gz (829 kB)

\[2020-02-12 16:12:51,062] INFO - Collecting colorama>=0.3.8

[2020-02-12 16:12:51,074] INFO -   Downloading colorama-0.4.3-py2.py3-none-any.whl (15 kB)

/[2020-02-12 16:12:51,196] INFO - Collecting Werkzeug>=0.15

[2020-02-12 16:12:51,210] INFO -   Downloading Werkzeug-1.0.0-py2.py3-none-any.whl (298 kB)

|[2020-02-12 16:12:51,348] INFO - Collecting itsdangerous>=0.24

[2020-02-12 16:12:51,359] INFO -   Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)

\[2020-02-12 16:12:51,424] INFO - Collecting Jinja2>=2.10.1

[2020-02-12 16:12:51,435] INFO -   Downloading Jinja2-2.11.1-py2.py3-none-any.whl (126 kB)

-[2020-02-12 16:12:51,522] INFO - Collecting Mako

[2020-02-12 16:12:51,534] INFO -   Downloading Mako-1.1.1.tar.gz (468 kB)

/[2020-02-12 16:12:51,999] INFO - Collecting python-editor>=0.3

[2020-02-12 16:12:52,010] INFO -   Downloading python_editor-1.0.4-py3-none-any.whl (4.9 kB)

[2020-02-12 16:12:52,026] INFO - Requirement already satisfied: setuptools in /opt/conda/lib/python3.7/site-packages (from protobuf>=3.6.0->bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (41.4.0)

[2020-02-12 16:12:52,030] INFO - Requirement already satisfied: six>=1.9 in /opt/conda/lib/python3.7/site-packages (from protobuf>=3.6.0->bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (1.12.0)

|[2020-02-12 16:12:52,540] INFO - Collecting botocore<1.15.0,>=1.14.16

[2020-02-12 16:12:52,553] INFO -   Downloading botocore-1.14.16-py2.py3-none-any.whl (5.9 MB)

|[2020-02-12 16:12:54,225] INFO - Collecting jmespath<1.0.0,>=0.7.1

[2020-02-12 16:12:54,238] INFO -   Downloading jmespath-0.9.4-py2.py3-none-any.whl (24 kB)

\[2020-02-12 16:12:54,298] INFO - Collecting s3transfer<0.4.0,>=0.3.0

[2020-02-12 16:12:54,310] INFO -   Downloading s3transfer-0.3.3-py2.py3-none-any.whl (69 kB)

-[2020-02-12 16:12:54,437] INFO - Collecting pyparsing>=2.0.2

[2020-02-12 16:12:54,450] INFO -   Downloading pyparsing-2.4.6-py2.py3-none-any.whl (67 kB)

-[2020-02-12 16:12:54,763] INFO - Collecting websocket-client>=0.32.0

[2020-02-12 16:12:54,786] INFO -   Downloading websocket_client-0.57.0-py2.py3-none-any.whl (200 kB)

/[2020-02-12 16:12:54,895] INFO - Collecting ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.9"

[2020-02-12 16:12:54,909] INFO -   Downloading ruamel.yaml.clib-0.2.0-cp37-cp37m-manylinux1_x86_64.whl (547 kB)

|[2020-02-12 16:12:55,016] INFO - Requirement already satisfied: idna<2.9,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (2.8)

[2020-02-12 16:12:55,019] INFO - Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (1.24.2)

[2020-02-12 16:12:55,027] INFO - Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (3.0.4)

[2020-02-12 16:12:55,030] INFO - Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.6.2->-r /opt/program/requirements.txt (line 1)) (2019.11.28)

\[2020-02-12 16:12:55,091] INFO - Collecting MarkupSafe>=0.23

[2020-02-12 16:12:55,102] INFO -   Downloading MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl (27 kB)

[2020-02-12 16:12:55,163] INFO - Collecting docutils<0.16,>=0.10

-[2020-02-12 16:12:55,179] INFO -   Downloading docutils-0.15.2-py3-none-any.whl (547 kB)

/[2020-02-12 16:12:55,305] INFO - Building wheels for collected packages: h2o, alembic, tabulate, cerberus, python-json-logger, sqlalchemy, prometheus-client, future, Mako

[2020-02-12 16:12:55,306] INFO -   Building wheel for h2o (setup.py): started

/[2020-02-12 16:13:01,500] INFO -   Building wheel for h2o (setup.py): finished with status 'done'

/[2020-02-12 16:13:01,851] INFO -   Created wheel for h2o: filename=h2o-3.24.0.2-py2.py3-none-any.whl size=121086847 sha256=6fc91f9d128dd76c862e7e3117c27638068ee61d4303891ed07773c0166ac296
  Stored in directory: /root/.cache/pip/wheels/67/f5/b7/a0faa980e26d61511ac423c9fac549c332d3411683d1c73fa6

[2020-02-12 16:13:01,852] INFO -   Building wheel for alembic (setup.py): started

|[2020-02-12 16:13:02,375] INFO -   Building wheel for alembic (setup.py): finished with status 'done'

[2020-02-12 16:13:02,377] INFO -   Created wheel for alembic: filename=alembic-1.4.0-py2.py3-none-any.whl size=157563 sha256=7a0f41f5c4b30c002506a961c1048a8aa99816bd39b6110c1195f6fce9486b38
  Stored in directory: /root/.cache/pip/wheels/33/a9/f9/a53f885636269db5b76cf7afa3a1ab86d9d2fe96610d09274e

[2020-02-12 16:13:02,379] INFO -   Building wheel for tabulate (setup.py): started

-[2020-02-12 16:13:02,649] INFO -   Building wheel for tabulate (setup.py): finished with status 'done'

[2020-02-12 16:13:02,650] INFO -   Created wheel for tabulate: filename=tabulate-0.8.6-py3-none-any.whl size=23273 sha256=5f4e865a5a3af1eb4ca8eea0d0095ae6601478e75f5a5caddee7fd0f9cd7000a
  Stored in directory: /root/.cache/pip/wheels/09/b6/7e/08b4ee715a1239453e89a59081f0ac369a9036f232e013ecd8

[2020-02-12 16:13:02,652] INFO -   Building wheel for cerberus (setup.py): started

\[2020-02-12 16:13:02,943] INFO -   Building wheel for cerberus (setup.py): finished with status 'done'

[2020-02-12 16:13:02,944] INFO -   Created wheel for cerberus: filename=Cerberus-1.3.2-py3-none-any.whl size=54335 sha256=0b97d5cd7cd6ffc4187f457e0f71363cd062794c9091ba1cde4496f32a85860d
  Stored in directory: /root/.cache/pip/wheels/17/3a/0d/e2fc48cf85cb858f5e65f1baa36180ebb5dce6397c35c4cfcb

[2020-02-12 16:13:02,946] INFO -   Building wheel for python-json-logger (setup.py): started

|[2020-02-12 16:13:03,233] INFO -   Building wheel for python-json-logger (setup.py): finished with status 'done'

[2020-02-12 16:13:03,233] INFO -   Created wheel for python-json-logger: filename=python_json_logger-0.1.11-py2.py3-none-any.whl size=5076 sha256=cd896cbdb7b03b629f75aee06b8f625e1f9563fe5e1b8f1e55b5d034c6f80726

[2020-02-12 16:13:03,233] INFO -   Stored in directory: /root/.cache/pip/wheels/fa/7f/fd/92ccdbb9d1a65486406e0363d2ba5b4ce52f400a915f602ecb

[2020-02-12 16:13:03,234] INFO -   Building wheel for sqlalchemy (setup.py): started

|[2020-02-12 16:13:04,851] INFO -   Building wheel for sqlalchemy (setup.py): finished with status 'done'

[2020-02-12 16:13:04,857] INFO -   Created wheel for sqlalchemy: filename=SQLAlchemy-1.3.13-cp37-cp37m-linux_x86_64.whl size=1223688 sha256=8cf1602e95de471d197443b486907f7038ed09528e333996c6ebd40c2d9854ae
  Stored in directory: /root/.cache/pip/wheels/b9/ba/77/163f10f14bd489351530603e750c195b0ceceed2f3be2b32f1

[2020-02-12 16:13:04,858] INFO -   Building wheel for prometheus-client (setup.py): started

/[2020-02-12 16:13:05,130] INFO -   Building wheel for prometheus-client (setup.py): finished with status 'done'

[2020-02-12 16:13:05,130] INFO -   Created wheel for prometheus-client: filename=prometheus_client-0.7.1-py3-none-any.whl size=41402 sha256=f2605db219c0fac0d35484bc5dbff9fff1fd188a2a11e7fe590de4bec961d11f
  Stored in directory: /root/.cache/pip/wheels/30/0c/26/59ba285bf65dc79d195e9b25e2ddde4c61070422729b0cd914

[2020-02-12 16:13:05,132] INFO -   Building wheel for future (setup.py): started

|[2020-02-12 16:13:05,668] INFO -   Building wheel for future (setup.py): finished with status 'done'

[2020-02-12 16:13:05,672] INFO -   Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491056 sha256=6656aba819264512731fb0f51834884b484949bb8a6ad26ca532b95f7bd98015

[2020-02-12 16:13:05,672] INFO -   Stored in directory: /root/.cache/pip/wheels/56/b0/fe/4410d17b32f1f0c3cf54cdfb2bc04d7b4b8f4ae377e2229ba0

[2020-02-12 16:13:05,674] INFO -   Building wheel for Mako (setup.py): started

|[2020-02-12 16:13:06,036] INFO -   Building wheel for Mako (setup.py): finished with status 'done'

[2020-02-12 16:13:06,037] INFO -   Created wheel for Mako: filename=Mako-1.1.1-py3-none-any.whl size=75409 sha256=812a0aa82f59b129e05ed8d4d508951faad9c852a68e989ab05cf1fcdee50154

[2020-02-12 16:13:06,037] INFO -   Stored in directory: /root/.cache/pip/wheels/11/fe/fa/3693b62cf5ec2b2784b6496734f0ee3e2321eb66d66607e5f9

[2020-02-12 16:13:06,039] INFO - Successfully built h2o alembic tabulate cerberus python-json-logger sqlalchemy prometheus-client future Mako

|[2020-02-12 16:13:06,511] INFO - Installing collected packages: click, Werkzeug, itsdangerous, MarkupSafe, Jinja2, flask, sqlalchemy, Mako, python-editor, python-dateutil, alembic, protobuf, jmespath, docutils, botocore, s3transfer, boto3, pytz, pandas, tabulate, pyparsing, packaging, configparser, cerberus, websocket-client, docker, python-json-logger, ruamel.yaml.clib, ruamel.yaml, humanfriendly, grpcio, prometheus-client, bentoml, future, colorama, h2o

\[2020-02-12 16:13:16,021] INFO - Successfully installed Jinja2-2.11.1 Mako-1.1.1 MarkupSafe-1.1.1 Werkzeug-1.0.0 alembic-1.4.0 bentoml-0.6.2 boto3-1.11.16 botocore-1.14.16 cerberus-1.3.2 click-7.0 colorama-0.4.3 configparser-4.0.2 docker-4.2.0 docutils-0.15.2 flask-1.1.1 future-0.18.2 grpcio-1.27.1 h2o-3.24.0.2 humanfriendly-6.1 itsdangerous-1.1.0 jmespath-0.9.4 packaging-20.1 pandas-1.0.1 prometheus-client-0.7.1 protobuf-3.11.3 pyparsing-2.4.6 python-dateutil-2.8.0 python-editor-1.0.4 python-json-logger-0.1.11 pytz-2019.3 ruamel.yaml-0.16.10 ruamel.yaml.clib-0.2.0 s3transfer-0.3.3 sqlalchemy-1.3.13 tabulate-0.8.6 websocket-client-0.57.0

-[2020-02-12 16:13:22,642] INFO -  ---> f7ddac0dc2f8

[2020-02-12 16:13:22,642] INFO - Step 9/11 : RUN if [ -f /bento/bentoml_init.sh ]; then /bin/bash -c /bento/bentoml_init.sh; fi
[2020-02-12 16:13:22,643] INFO - 

/[2020-02-12 16:13:22,796] INFO -  ---> Running in 972a1db54f80

|[2020-02-12 16:13:24,078] INFO -  ---> d059c9263326

[2020-02-12 16:13:24,078] INFO - Step 10/11 : RUN if [ -f /opt/program/setup.sh ]; then /bin/bash -c /opt/program/setup.sh; fi
[2020-02-12 16:13:24,078] INFO - 

-[2020-02-12 16:13:24,262] INFO -  ---> Running in 1ffd48b0dbcc

|[2020-02-12 16:13:25,755] INFO -  ---> f95aa39ce5b2

[2020-02-12 16:13:25,756] INFO - Step 11/11 : ENV PATH="/opt/program:${PATH}"
[2020-02-12 16:13:25,756] INFO - 

-[2020-02-12 16:13:25,930] INFO -  ---> Running in bfd0e4fc0451

\[2020-02-12 16:13:26,205] INFO -  ---> 869b6d118b2a

[2020-02-12 16:13:26,211] INFO - Successfully built 869b6d118b2a

[2020-02-12 16:13:26,215] INFO - Successfully tagged 192023623294.dkr.ecr.us-west-2.amazonaws.com/h2omodelservice-sagemaker:20200212154840_9B4F59

/[2020-02-12 16:16:51,302] INFO - ApplyDeployment (first-h2o, namespace bobo) succeeded
Successfully created AWS Sagemaker deployment first-h2o
{
  "namespace": "bobo",
  "name": "first-h2o",
  "spec": {
    "bentoName": "H2oModelService",
    "bentoVersion": "20200212154840_9B4F59",
    "operator": "AWS_SAGEMAKER",
    "sagemakerOperatorConfig": {
      "region": "us-west-2",
      "instanceType": "ml.m4.xlarge",
      "instanceCount": 1,
      "apiName": "predict"
    }
  },
  "state": {
    "state": "RUNNING",
    "infoJson": {
      "EndpointName": "bobo-first-h2o",
      "EndpointArn": "arn:aws:sagemaker:us-west-2:192023623294:endpoint/bobo-first-h2o",
      "EndpointConfigName": "bobo-first-h2o-H2oModelService-20200212154840-9B4F59",
      "ProductionVariants": [
        {
          "VariantName": "bobo-first-h2o-H2oModelService-20200212154840-9B4F59",
          "DeployedImages": [
            {
              "SpecifiedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/h2omodelservice-sagemaker:20200212154840_9B4F59",
              "ResolvedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/[email protected]:1af13f6d1de0941f347a78c5bcf6bb4de5bb201affc26f7afb9b41bc1b7441d9",
              "ResolutionTime": "2020-02-12 16:16:52.816000-08:00"
            }
          ],
          "CurrentWeight": 1.0,
          "DesiredWeight": 1.0,
          "CurrentInstanceCount": 1,
          "DesiredInstanceCount": 1
        }
      ],
      "EndpointStatus": "InService",
      "CreationTime": "2020-02-12 16:16:51.254000-08:00",
      "LastModifiedTime": "2020-02-12 16:26:08.028000-08:00",
      "ResponseMetadata": {
        "RequestId": "9dacce8a-80fb-4b3e-a670-2d7fe25b4766",
        "HTTPStatusCode": 200,
        "HTTPHeaders": {
          "x-amzn-requestid": "9dacce8a-80fb-4b3e-a670-2d7fe25b4766",
          "content-type": "application/x-amz-json-1.1",
          "content-length": "799",
          "date": "Thu, 13 Feb 2020 00:26:09 GMT"
        },
        "RetryAttempts": 0
      }
    },
    "timestamp": "2020-02-13T00:26:10.082797Z"
  },
  "createdAt": "2020-02-13T00:09:47.932536Z",
  "lastUpdatedAt": "2020-02-13T00:09:47.932567Z"
}
In [34]:
!bentoml sagemaker get first-h2o
{
  "namespace": "bobo",
  "name": "first-h2o",
  "spec": {
    "bentoName": "H2oModelService",
    "bentoVersion": "20200212154840_9B4F59",
    "operator": "AWS_SAGEMAKER",
    "sagemakerOperatorConfig": {
      "region": "us-west-2",
      "instanceType": "ml.m4.xlarge",
      "instanceCount": 1,
      "apiName": "predict"
    }
  },
  "state": {
    "state": "RUNNING",
    "infoJson": {
      "EndpointName": "bobo-first-h2o",
      "EndpointArn": "arn:aws:sagemaker:us-west-2:192023623294:endpoint/bobo-first-h2o",
      "EndpointConfigName": "bobo-first-h2o-H2oModelService-20200212154840-9B4F59",
      "ProductionVariants": [
        {
          "VariantName": "bobo-first-h2o-H2oModelService-20200212154840-9B4F59",
          "DeployedImages": [
            {
              "SpecifiedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/h2omodelservice-sagemaker:20200212154840_9B4F59",
              "ResolvedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/[email protected]:1af13f6d1de0941f347a78c5bcf6bb4de5bb201affc26f7afb9b41bc1b7441d9",
              "ResolutionTime": "2020-02-12 16:16:52.816000-08:00"
            }
          ],
          "CurrentWeight": 1.0,
          "DesiredWeight": 1.0,
          "CurrentInstanceCount": 1,
          "DesiredInstanceCount": 1
        }
      ],
      "EndpointStatus": "InService",
      "CreationTime": "2020-02-12 16:16:51.254000-08:00",
      "LastModifiedTime": "2020-02-12 16:26:08.028000-08:00",
      "ResponseMetadata": {
        "RequestId": "d5083aa0-42ed-4066-b948-14e5985b18f1",
        "HTTPStatusCode": 200,
        "HTTPHeaders": {
          "x-amzn-requestid": "d5083aa0-42ed-4066-b948-14e5985b18f1",
          "content-type": "application/x-amz-json-1.1",
          "content-length": "799",
          "date": "Thu, 13 Feb 2020 00:27:16 GMT"
        },
        "RetryAttempts": 0
      }
    },
    "timestamp": "2020-02-13T00:27:16.663112Z"
  },
  "createdAt": "2020-02-13T00:09:47.932536Z",
  "lastUpdatedAt": "2020-02-13T00:09:47.932567Z"
}
In [35]:
!aws sagemaker-runtime invoke-endpoint --endpoint-name bobo-first-h2o \
--body 'ID,CAPSULE,AGE,RACE,DPROS,DCAPS,PSA,VOL,GLEASON\n1,0,65,1,2,1,1.4,0,6\n2,0,72,1,3,2,6.7,0,7\n' \
--content-type 'text/csv' output.json && cat output.json
{
    "ContentType": "application/json",
    "InvokedProductionVariant": "bobo-first-h2o-H2oModelService-20200212154840-9B4F59"
}
[]
In [36]:
!bentoml sagemaker list
NAME       NAMESPACE    PLATFORM       BENTO_SERVICE                          STATUS    AGE
first-h2o  bobo         aws-sagemaker  H2oModelService:20200212154840_9B4F59  running   18 minutes and 44.32 seconds
In [37]:
!bentoml sagemaker delete first-h2o
Successfully deleted AWS Sagemaker deployment "first-h2o"
In [ ]: