# Buggy code
def __default_containers_resolvers(self):
    default_resolvers = [
        ExplicitContainerResolver(self.app_info),
        ExplicitSingularityContainerResolver(self.app_info),
    ]
    if self.enable_mulled_containers:
        default_resolvers.extend(
            [
                CachedMulledDockerContainerResolver(
                    self.app_info, namespace="biocontainers"
                ),
                CachedMulledDockerContainerResolver(self.app_info, namespace="local"),
                CachedMulledSingularityContainerResolver(
                    self.app_info, namespace="biocontainers"
                ),
                CachedMulledSingularityContainerResolver(
                    self.app_info, namespace="local"
                ),
                MulledDockerContainerResolver(self.app_info, namespace="biocontainers"),
                MulledSingularityContainerResolver(
                    self.app_info, namespace="biocontainers"
                ),
                BuildMulledDockerContainerResolver(self.app_info),
                BuildMulledSingularityContainerResolver(self.app_info),
            ]
        )
    return default_resolvers


# Traceback (FileNotFoundError)
urllib3.connectionpool DEBUG 2021-01-13 15:26:00,421 https://quay.io:443 "GET /api/v1/repository/biocontainers/porechop HTTP/1.1" 200 4033
galaxy.tool_util.deps.containers ERROR 2021-01-13 15:26:00,499 Could not get container description for tool 'toolshed.g2.bx.psu.edu/repos/iuc/porechop/porechop/0.2.3'
Traceback (most recent call last):
File "/galaxy/server/lib/galaxy/tool_util/deps/containers.py", line 243, in find_best_container_description
resolved_container_description = self.resolve(enabled_container_types, tool_info, **kwds)
File "/galaxy/server/lib/galaxy/tool_util/deps/containers.py", line 265, in resolve
container_description = container_resolver.resolve(enabled_container_types, tool_info, install=install, resolution_cache=resolution_cache, session=session)
File "/galaxy/server/lib/galaxy/tool_util/deps/container_resolvers/mulled.py", line 410, in resolve
if install and not self.cached_container_description(
File "/galaxy/server/lib/galaxy/tool_util/deps/container_resolvers/mulled.py", line 385, in cached_container_description
return docker_cached_container_description(targets, namespace, hash_func, resolution_cache)
File "/galaxy/server/lib/galaxy/tool_util/deps/container_resolvers/mulled.py", line 202, in docker_cached_container_description
cached_images = list_docker_cached_mulled_images(namespace, hash_func=hash_func, resolution_cache=resolution_cache)
File "/galaxy/server/lib/galaxy/tool_util/deps/container_resolvers/mulled.py", line 71, in list_docker_cached_mulled_images
images_and_versions = unicodify(subprocess.check_output(command)).strip().splitlines()
File "/usr/lib/python3.8/subprocess.py", line 411, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.8/subprocess.py", line 489, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.8/subprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1702, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'docker'

# Fixed code
def __default_containers_resolvers(self):
    default_resolvers = [
        ExplicitContainerResolver(self.app_info),
        ExplicitSingularityContainerResolver(self.app_info),
    ]
    if self.enable_mulled_containers:
        default_resolvers.extend(
            [
                CachedMulledDockerContainerResolver(
                    self.app_info, namespace="biocontainers"
                ),
                CachedMulledDockerContainerResolver(self.app_info, namespace="local"),
                CachedMulledSingularityContainerResolver(
                    self.app_info, namespace="biocontainers"
                ),
                CachedMulledSingularityContainerResolver(
                    self.app_info, namespace="local"
                ),
                MulledDockerContainerResolver(self.app_info, namespace="biocontainers"),
                MulledSingularityContainerResolver(
                    self.app_info, namespace="biocontainers"
                ),
            ]
        )
        # BuildMulledDockerContainerResolver and BuildMulledSingularityContainerResolver both need the docker daemon to build images.
        # If docker is not available, we don't load them.
        build_mulled_docker_container_resolver = BuildMulledDockerContainerResolver(
            self.app_info
        )
        if build_mulled_docker_container_resolver.docker_cli_available:
            default_resolvers.extend(
                [
                    build_mulled_docker_container_resolver,
                    BuildMulledSingularityContainerResolver(self.app_info),
                ]
            )
    return default_resolvers