diff --git a/supervisor/addons/build.py b/supervisor/addons/build.py index d0c2ff86b..648bedaec 100644 --- a/supervisor/addons/build.py +++ b/supervisor/addons/build.py @@ -48,6 +48,14 @@ class AddonBuild(JsonConfig, CoreSysAttributes): """Return additional Docker build arguments.""" return self._data[ATTR_ARGS] + @property + def is_valid(self) -> bool: + """Return true if the build env is valid.""" + return all( + self.addon.path_location.is_dir(), + Path(self.addon.path_location, "Dockerfile").is_file(), + ) + def get_docker_args(self, version: AwesomeVersion): """Create a dict with Docker build arguments.""" args = { diff --git a/supervisor/docker/addon.py b/supervisor/docker/addon.py index ee9e63e47..713254f5f 100644 --- a/supervisor/docker/addon.py +++ b/supervisor/docker/addon.py @@ -423,6 +423,9 @@ class DockerAddon(DockerInterface): Need run inside executor. """ build_env = AddonBuild(self.coresys, self.addon) + if not build_env.is_valid: + _LOGGER.error("Invalid build envoirement, can't build this add-on!") + raise DockerError() _LOGGER.info("Starting build for %s:%s", self.image, version) try: