mkdocs build failed with "No such file or directory"
Iceberg site build, mkdocs build, failed after upgrading mkdocs-monorepo-plugin from a fork of 1.1.0 to 1.1.2 with following error
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.13.7/x64/bin/mkdocs", line 7, in <module>
sys.exit(cli())
~~~^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/click/core.py", line 1442, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/click/core.py", line 1363, in main
rv = self.invoke(ctx)
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/click/core.py", line 1830, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/click/core.py", line 1226, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/mkdocs/__main__.py", line 315, in gh_deploy_command
build.build(cfg, dirty=not clean)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/mkdocs/commands/build.py", line 325, in build
files.copy_static_files(dirty=dirty, inclusion=inclusion)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/mkdocs/structure/files.py", line 122, in copy_static_files
file.copy_file(dirty)
~~~~~~~~~~~~~~^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/mkdocs/structure/files.py", line 485, in copy_file
utils.copy_file(self.abs_src_path, output_path)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/mkdocs/utils/__init__.py", line 123, in copy_file
shutil.copyfile(source_path, output_path)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/shutil.py", line 260, in copyfile
with open(src, 'rb') as fsrc:
~~~~^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/docs_oxlrjl8_/docs/nightly/docs'
It can be resolved by reverting https://github.com/backstage/mkdocs-monorepo-plugin/pull/126
After enabling DEBUG log, I find the error was thrown when copying the symlink docs/nightly/docs
DEBUG - Copying media file: 'docs/nightly/docs'
Traceback (most recent call last):
File "/Users/tianlzhang/miniconda3/bin/mkdocs", line 8, in <module>
sys.exit(cli())
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/mkdocs/__main__.py", line 288, in build_command
build.build(cfg, dirty=not clean)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/mkdocs/commands/build.py", line 325, in build
files.copy_static_files(dirty=dirty, inclusion=inclusion)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/mkdocs/structure/files.py", line 122, in copy_static_files
file.copy_file(dirty)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/mkdocs/structure/files.py", line 485, in copy_file
utils.copy_file(self.abs_src_path, output_path)
File "/Users/tianlzhang/miniconda3/lib/python3.10/site-packages/mkdocs/utils/__init__.py", line 123, in copy_file
shutil.copyfile(source_path, output_path)
File "/Users/tianlzhang/miniconda3/lib/python3.10/shutil.py", line 254, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/pv/9kgp4f8j685fqb28n83cdb800000gq/T/docs_b52iu7n9/docs/nightly/docs'
@bih could you please take a look?
I'm not sure if this is the case for you, but I ran into a similar error and traced it to the inability to work with symbolic links in included docs/ directories, at least when those links point to a file outside of the included docs/ directories.
I created a separate Issue #145 , but these may be the same issue.