write_docker

write_docker

Functions

Name Description
prepare_docker Create all files needed for Docker
write_docker Writes a Dockerfile to run VetiverAPI in a container

prepare_docker

write_docker.prepare_docker(
    board,
    pin_name,
    path='./',
    version=None,
    rspm_env=False,
    host='0.0.0.0',
    port='8080',
)

Create all files needed for Docker

Parameters

Name Type Description Default
board Pin board for model required
pin_name str Name of pin required
path str Path to output './'
version Pin version to be used None
rspm_env bool Whether or not Posit Package Manager should be used False
host str Host address to run VetiverAPI from Dockerfile '0.0.0.0'
port str Port to run VetiverAPI from Dockerfile '8080'

Examples

>>> import vetiver
>>> import tempfile
>>> import pins
>>> tmp = tempfile.TemporaryDirectory()
>>> board = pins.board_temp(allow_pickle_read=True)
>>> X, y = vetiver.get_mock_data()
>>> model = vetiver.get_mock_model().fit(X, y)
>>> v = vetiver.VetiverModel(model, "my_model", prototype_data = X)
>>> vetiver.vetiver_pin_write(board, v)
>>> vetiver.prepare_docker(board = board, pin_name = "my_model", path = tmp.name)

Notes

This function uses vetiver.get_board_pkgs(board) for generating requirements. For more complex use cases, call write_docker(), load_pkgs(), and write_app() individually.

write_docker

write_docker.write_docker(
    app_file='app.py',
    path='./',
    rspm_env=False,
    host='0.0.0.0',
    port='8080',
)

Writes a Dockerfile to run VetiverAPI in a container

Parameters

Name Type Description Default
app_file str File containing VetiverAPI to be deployed into container 'app.py'
path str Path to save Dockerfile './'
rspm_env bool Whether or not Posit Package Manager should be used False
host str Host address to run VetiverAPI from Dockerfile '0.0.0.0'
port str Port to run VetiverAPI from Dockerfile '8080'

Examples

>>> import vetiver
>>> import tempfile
>>> import pins
>>> tmp = tempfile.TemporaryDirectory()
>>> board = pins.board_temp(allow_pickle_read=True)
>>> X, y = vetiver.get_mock_data()
>>> model = vetiver.get_mock_model().fit(X, y)
>>> v = vetiver.VetiverModel(model, "my_model", prototype_data = X)
>>> vetiver.vetiver_pin_write(board, v)
>>> vetiver.write_app(board,
...     "my_model",
...     file = tmp.name + "/app.py") # need file for model
>>> vetiver.write_docker(app_file = "app.py", path = tmp.name)