fix: fall back to provider's bundled Dockerfile when manifest doesn't override
BottleBackend.prepare was calling resolve_manifest_dockerfile("", spec)
for every bottle where the manifest did not set agent_provider.dockerfile.
That resolves an empty string against user_cwd, returning the cwd
itself — which docker then tried to read as a Dockerfile, giving
"is a directory" errors during image build.
When the manifest doesn't override, use the provider plugin's bundled
Dockerfile path (next to its agent_provider.py module) — mirroring
the pre-refactor behavior.
This commit is contained in:
@@ -298,7 +298,15 @@ class BottleBackend(ABC, Generic[PlanT, CleanupT]):
|
|||||||
slug = mint_slug(spec)
|
slug = mint_slug(spec)
|
||||||
write_launch_metadata(slug, spec, compose_project="", backend="smolmachines")
|
write_launch_metadata(slug, spec, compose_project="", backend="smolmachines")
|
||||||
|
|
||||||
agent_dockerfile_path = resolve_manifest_dockerfile(manfiest_agent_provider.dockerfile, spec)
|
# Manifest may override the Dockerfile per-bottle; otherwise fall
|
||||||
|
# back to the provider plugin's bundled Dockerfile (next to its
|
||||||
|
# agent_provider.py module).
|
||||||
|
if manfiest_agent_provider.dockerfile:
|
||||||
|
agent_dockerfile_path = resolve_manifest_dockerfile(
|
||||||
|
manfiest_agent_provider.dockerfile, spec,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
agent_dockerfile_path = str(agent_provider.dockerfile)
|
||||||
instance_name = f"bot-bottle-{slug}"
|
instance_name = f"bot-bottle-{slug}"
|
||||||
|
|
||||||
agent_dir, prompt_file = prepare_agent_state_dir(slug, spec)
|
agent_dir, prompt_file = prepare_agent_state_dir(slug, spec)
|
||||||
|
|||||||
Reference in New Issue
Block a user