Go构建成功后faasd up在DEV模式启动失败:/root/resolv.conf不存在
faasd DEV模式启动失败问题排查与解决
问题核心
从错误日志可直接定位:faasd尝试将宿主机的/root/resolv.conf挂载到nats容器的/etc/resolv.conf时,找不到该文件,导致容器初始化失败。
排查方向与解决办法
- 补全缺失的/root/resolv.conf文件
系统默认DNS配置文件在/etc/resolv.conf,直接复制到/root目录即可:cp /etc/resolv.conf /root/resolv.conf chmod 644 /root/resolv.conf - 修正faasd配置中的挂载路径
检查DEV模式下的faasd配置文件(如faasd-dev.yml或本地自定义配置),确认是否手动指定了resolv.conf的挂载源路径,若存在错误则修正为/etc/resolv.conf(系统通用路径)。 - 调整目录权限(不推荐优先使用)
日志显示nats以用户65534(nobody)运行,该用户默认无/root目录访问权限。若必须使用/root下的配置,可临时调整权限:
注意:此操作会降低/root目录的安全性,建议优先使用前两种方案。chmod 755 /root - 检查构建时的硬编码参数
新构建的二进制可能在编译时被硬编码了/root/resolv.conf路径。重新构建时指定正确的DNS配置路径:go build -tags dev -ldflags="-X 'github.com/openfaas/faasd/pkg/config.ResolvConfPath=/etc/resolv.conf'"
验证操作
完成上述任一方案后,重新执行启动命令:
faasd up
内容的提问来源于stack exchange,提问作者Ikhyun An John
相关产品推荐
相关产品推荐

