WSL环境下Docker运行Go项目连接MySQL容器失败求助
问题解决
一、WSL环境Docker运行报错处理
出现<3>WSL (1) ERROR: ConfigInitializeEntry:1554: Failed to mount (null) at /dev as devtmpfs 1错误,核心是WSL 1的兼容性问题,处理方案如下:
- 升级到WSL 2(推荐):
- 以管理员身份打开PowerShell,执行:
wsl --set-version <你的WSL发行版名> 2(例如Ubuntu发行版:wsl --set-version Ubuntu 2) - 设置默认WSL版本为2:
wsl --set-default-version 2 - 重启Docker Desktop和WSL终端,重新运行Docker命令
- 以管理员身份打开PowerShell,执行:
- 若无法升级WSL 2,尝试临时修复:
- 关闭所有WSL终端和Docker Desktop
- PowerShell执行
wsl --shutdown彻底终止WSL进程 - 重新启动Docker Desktop,确认WSL相关兼容设置已开启
- 重启WSL终端后再次执行Docker运行命令
二、Go Build命令替换说明
不能直接用go build -o qnmahjong替代带-ldflags的编译命令,原因:
- 原命令中的
-ldflags "-X main.branch=git rev-parse --abbrev-ref HEAD -X main.commit=git rev-parse HEAD"作用是在编译阶段,将当前Git仓库的分支名和提交哈希值注入到main包的branch和commit变量中 - 如果省略这部分,程序中若有依赖这两个变量的逻辑(比如版本信息展示、日志版本标记)会失效,变量会显示空值或默认值
- 仅当程序完全不依赖这两个变量,或你不需要版本追踪功能时,才可以使用简化的
go build -o qnmahjong,不会影响程序核心运行逻辑
内容的提问来源于stack exchange,提问作者Anson Chan
相关产品推荐
相关产品推荐

