Fyne 系列 14:Docker 编译 Linux 版本
Linux 桌面程序最容易遇到环境差异。用 Docker 编译 Fyne 的 Linux 版本,可以把 Go 版本、系统依赖、构建命令固定下来,方便在 CI 和本机复现。
Dockerfile 示例
1 | FROM golang:1.24-bookworm |
这个镜像只作为起点。实际项目里还需要根据报错补充 Wayland、音频、剪贴板等依赖。
构建镜像
1 | docker build -t fyne-linux-build . |
如果希望把产物复制出来,可以使用多阶段构建,或者在容器运行时挂载输出目录。
1 | docker run --rm -v "$PWD/dist:/dist" fyne-linux-build |
Go Module 缓存
CI 里建议缓存 Go module,这样每次构建不用重新下载所有依赖。
本地调试时,也可以把 GOMODCACHE 挂到宿主机目录,不过这会让 Dockerfile 变复杂。刚开始先保证能稳定构建更重要。
Docker 适合做什么
Docker 适合编译 Linux 产物,不适合直接解决所有平台问题。Windows 和 macOS 的应用包、签名、系统集成,仍然建议在对应平台处理。
常见问题
如果 Docker 构建时报图形库缺失,优先检查错误里的头文件名。如果运行时报字体异常,需要确认目标系统是否有中文字体。
Fyne 程序发布给 Linux 用户时,最好说明测试过的发行版和桌面环境。
评论
评论插件加载失败
正在加载评论插件