8000 prepare_docker does not work with a local pin board · Issue #235 · rstudio/vetiver-python · GitHub
[go: up one dir, main page]

  • Pricing
  • Search code, repositories, users, issues, pull requests...

    Provide feedback

    We read every piece of feedback, and take your input very seriously.

    Saved searches

    Use saved searches to filter your results more quickly

    Appearance settings

    prepare_docker does not work with a local pin board #235

    @rundel

    Description

    @rundel

    Describe the bug
    The Dockerfile and app.py do not include the board folder contents either by copying or by use of a volume which then causes a failure on runtime.

    To Reproduce
    Steps to reproduce the behavior:

    1. Run the sample code provided with prepare_docker documentation
    2. Navigate to tmp.name
    3. Run docker build . -t test
    4. Run docker run -p 8080:8080 test
    5. The following error occurs:
    Traceback (most recent call last):
      File "/usr/local/bin/uvicorn", line 8, in <module>
        sys.exit(main())
                 ^^^^^^
      File "/usr/local/lib/python3.12/site-packages/click/core.py", line 1161, in __call__
        return self.main(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/click/core.py", line 1082, in main
        rv = self.invoke(ctx)
             ^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/click/core.py", line 1443, in invoke
        return ctx.invoke(self.callback, **ctx.params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/click/core.py", line 788, in invoke
        return __callback(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/uvicorn/main.py", line 412, in main
        run(
      File "/usr/local/lib/python3.12/site-packages/uvicorn/main.py", line 579, in run
        server.run()
      File "/usr/local/lib/python3.12/site-packages/uvicorn/server.py", line 66, in run
        return asyncio.run(self.serve(sockets=sockets))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/asyncio/runners.py", line 195, in run
        return runner.run(main)
               ^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
        return self._loop.run_until_complete(task)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
        return future.result()
               ^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/uvicorn/server.py", line 70, in serve
        await self._serve(sockets)
      File "/usr/local/lib/python3.12/site-packages/uvicorn/server.py", line 77, in _serve
        config.load()
      File "/usr/local/lib/python3.12/site-packages/uvicorn/config.py", line 435, in load
        self.loaded_app = import_from_string(self.app)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/uvicorn/importer.py", line 19, in import_from_string
        module = importlib.import_module(module_str)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
      File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 999, in exec_module
      File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
      File "/vetiver/app/app.py", line 9, in <module>
        v = VetiverModel.from_pin(b, 'my_model', version = '20250331T104040Z-e0705')
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/vetiver/vetiver_model.py", line 110, in from_pin
        model = board.pin_read(name, version)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/pins/boards.py", line 203, in pin_read
        meta = self.pin_fetch(name, version)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/pins/boards.py", line 178, in pin_fetch
        meta = self.pin_meta(name, version)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/local/lib/python3.12/site-packages/pins/boards.py", line 135, in pin_meta
        raise PinsError(
    pins.errors.PinsError: Pin my_model either does not exist, or is missing version: 20250331T104040Z-e0705.
    

    Expected behavior
    The docker image is able to run the model api without additional intervention.

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      No labels
      No labels

      Type

      No type

      Projects

      No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        0