Windows10下WSL2+Nvidia环境运行CARLA容器报错:xdg-user-dir: not found
解决Docker启动CARLA 0.9.15容器时
xdg-user-dir: not found错误 问题背景
在Windows 10下通过Docker Compose部署CARLA服务器时,容器启动报错sh: 1: xdg-user-dir: not found,即使手动进入容器安装xdg-user-dirs和xdg-utils,重启容器后问题依然存在。使用的carla.yaml配置如下:
version: '3.8' services: # Carla server container carla: image: carlasim/carla:0.9.15 container_name: carla runtime: nvidia ports: 2000-2002:2000-2002 command: ["bash", "-c", "./CarlaUE4.sh -vulkan -nosound -RenderOffscreen"]
问题原因
CARLA的启动脚本依赖xdg-user-dir工具定位用户配置目录,但官方镜像默认未预装该工具;另外,手动进入容器安装依赖后,容器重启会回到原镜像的干净状态,之前的修改不会被保留。
解决方案
方案1:通过环境变量跳过xdg-user-dir调用
直接在docker-compose配置中指定XDG系列环境变量,手动创建所需目录,避免脚本调用xdg-user-dir:
version: '3.8' services: carla: image: carlasim/carla:0.9.15 container_name: carla runtime: nvidia ports: 2000-2002:2000-2002 environment: - XDG_CONFIG_HOME=/tmp/.config - XDG_DATA_HOME=/tmp/.local/share command: ["bash", "-c", "mkdir -p $XDG_CONFIG_HOME $XDG_DATA_HOME && ./CarlaUE4.sh -vulkan -nosound -RenderOffscreen"]
方案2:启动时自动安装依赖
将安装依赖的步骤整合到启动命令中,确保每次容器启动时都能获取到所需工具:
version: '3.8' services: carla: image: carlasim/carla:0.9.15 container_name: carla runtime: nvidia ports: 2000-2002:2000-2002 command: ["bash", "-c", "apt-get update && apt-get install -y xdg-user-dirs && xdg-user-dirs-update && ./CarlaUE4.sh -vulkan -nosound -RenderOffscreen"]
方案3:构建自定义镜像(持久化解决)
创建自定义Dockerfile,基于官方镜像预装依赖,避免每次启动重复安装:
FROM carlasim/carla:0.9.15 RUN apt-get update && apt-get install -y --no-install-recommends xdg-user-dirs xdg-utils \ && xdg-user-dirs-update \ && rm -rf /var/lib/apt/lists/* CMD ["bash", "-c", "./CarlaUE4.sh -vulkan -nosound -RenderOffscreen"]
构建镜像:
docker build -t my-carla:0.9.15 .
修改carla.yaml中的image字段为自定义镜像:
image: my-carla:0.9.15
内容的提问来源于stack exchange,提问作者RPBruiser
相关产品推荐
相关产品推荐

