Fix ZFS pool detection: bind-mount host zpool binary and libs
This commit is contained in:
@@ -10,12 +10,11 @@ services:
|
||||
- /dev:/dev
|
||||
- /sys:/sys:ro
|
||||
- /run/udev:/run/udev:ro
|
||||
- /usr/sbin/zpool:/usr/sbin/zpool:ro
|
||||
- /usr/sbin/zfs:/usr/sbin/zfs:ro
|
||||
- /usr/lib/libzfs.so.6:/usr/lib/libzfs.so.6:ro
|
||||
- /usr/lib/libnvpair.so.3:/usr/lib/libnvpair.so.3:ro
|
||||
- /usr/lib/libuutil.so.3:/usr/lib/libuutil.so.3:ro
|
||||
- /usr/lib/libzfs_core.so.3:/usr/lib/libzfs_core.so.3:ro
|
||||
- /usr/sbin/zpool:/host/zpool:ro
|
||||
- /usr/sbin/zfs:/host/zfs:ro
|
||||
- /lib/x86_64-linux-gnu:/host/lib:ro
|
||||
environment:
|
||||
- TZ=America/Denver
|
||||
- UVICORN_LOG_LEVEL=info
|
||||
- ZPOOL_BIN=/host/zpool
|
||||
- LD_LIBRARY_PATH=/host/lib
|
||||
|
||||
@@ -4,6 +4,9 @@ import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Allow overriding the zpool binary path via env (for bind-mounted host tools)
|
||||
ZPOOL_BIN = os.environ.get("ZPOOL_BIN", "zpool")
|
||||
|
||||
|
||||
async def get_zfs_pool_map() -> dict[str, str]:
|
||||
"""Return a dict mapping device names to ZFS pool names.
|
||||
@@ -13,7 +16,7 @@ async def get_zfs_pool_map() -> dict[str, str]:
|
||||
pool_map = {}
|
||||
try:
|
||||
proc = await asyncio.create_subprocess_exec(
|
||||
"zpool", "status", "-P",
|
||||
ZPOOL_BIN, "status", "-P",
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
stderr=asyncio.subprocess.PIPE,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user