没有不值得去解决的问题,也没有不值得去学习的技术!

从零到一:在 Trae CN + Docker 中搭建 Go + Gin 开发环境

Docker 扩展面板的容器操作菜单

从 Windows 到 Ubuntu:迁移与配置完全指南

在启动项列表中找到刚创建的 Ubuntu Installer,通过右侧的 “上移” 按钮将其移到第一位。这样重启后电脑会优先从这个启动项引导。

(1) 从 Windows 10 迁移至 Ubuntu – 上篇:安装前的准备工作

如图24 – 选择 Ubuntu 外观,高亮默认

(2) 从 Windows 10 迁移至 Ubuntu – 下篇:Ubuntu 26.04 安装与首次配置

安装完成后,打开 Fcitx5 配置工具(fcitx5-configtool),在“输入法”选项卡中添加 “五笔拼音” 即可正常使用。

(3) Ubuntu 初始化配置(基本设置、软件安装)

图10 – 新分区信息(UUID、卷标、文件系统)

(4) Ubuntu 磁盘规划:将 /home 迁移到第二块 SSD

如图10:点击 安装 按钮,进度条显示“正在准备…”。

(5) Ubuntu 26.04 软件安装与维护最佳实践:以微信为例

图中查找范围为 /home/wangqiang,名称列表里仅有「下载」和「xwechat_files」两个文件夹

(6) 解决 Linux 微信「另存为」对话框只显示两个文件夹的问题

图1 重启后右上角没有输入法图标

(7) Ubuntu 26.04 输入法折腾记:从 Fcitx5 自启失败到五笔拼音稳定使用

下图为实拍照片(图3): (此处为双屏实物照片,展示左外接、右笔记本的布局,两台显示器并排亮起)

(8) Ubuntu 双屏幕配置实战:ThinkPad T570 外接显示器,左屏右本更顺手

中文部分显示为梦源宋体,清晰舒适

(9) 从思源到梦源:在 Ubuntu 26.04 上把宋体“折腾”明白

至此,三个数据库容器均已正常运行。

(10) 配置开发环境:使用 Docker 管理多版本 MySQL 与 Redis

SOLO 模式欢迎界面,我切换到了 IDE

(11) 从百度API推送到AI IDE选型:我如何搞定Trae安装并准备开工

如图15:授权完成后,Gmail 账号成功添加。最终,Thunderbird 账户列表里一共添加了 8 个邮箱。

(12) Ubuntu 26.04 邮件客户端折腾记:从网易邮箱大师到 Thunderbird,一口气添加 8 个邮箱

图1:优化前60标签整机内存占用截图(原始满载19GB+)

(13) Ubuntu 26.04 下 Chrome 高内存占用优化全记录|同60标签,Win10≈7GB,Ubuntu暴涨至20GB排坑实录

📸 浏览器显示 JSON 数据,如图4

(14) Ubuntu 26.04 + Docker 搭建 Go Gin 开发环境(全记录)

在保存对话框中找到 显示选项 - 编码 ,将其从“自动检测”改为 UTF-8。

(15) Ubuntu 打开 Windows 文档提示“无效字符”?我的解决方法

从截图中可以看到,我连续执行了 mv、chmod、nano,最后 ssh aliyun 一气呵成,直接显示欢迎信息和上次登录时间,没有任何密码询问。

(16) 告别密码与断连:阿里云 ECS SSH 免密登录与心跳保活实践

[截图 5:扩展显示“用户已全局禁用此扩展”及右键菜单]

(17) 在 Trae CN 中尝试 Dev Containers:一次不太成功的踩坑记录

Docker 扩展面板的容器操作菜单

(18) 从零到一:在 Trae CN + Docker 中搭建 Go + Gin 开发环境

Flameshot 的功能

(19) 告别微信窗口限制:在 Ubuntu 26.04 使用 Flameshot 绑定全局 Alt+A 截图

微信的内存占用高达 2.01 GB(1.5%);而在只开启一个标签页的情况下,Google Chrome 的内存占用更是达到了 2.96 GB(1.0%)。

(20) Ubuntu 26.04 软件安装与维护最佳实践更新:从 Chrome 内存暴涨排坑到弃用 Flatpak 重度应用

deb 版 Firefox 更实用:能直接访问 Chrome 配置文件,资源占用更小。现在开启 4 个窗口,50 个标签页,内存占用 5 GB 左右

(21) Ubuntu 26.04 下从 Chrome 迁移到 Firefox:我的折腾经历

如图4:将中州韵加入输入法列表

(22) 从 Windows 到 Ubuntu:Rime → wbpy 的输入法选型失败记录

about:config

(23) Ubuntu 26.04 桌面性能优化实战:从卡顿到稳定运行的完整调优记录

写在前面

最近我在 Ubuntu 26.04 上尝试使用 Trae CN 编辑器,配合 Docker 容器来开发一个 Go + Gin 的项目(go-gin-learning)。整个过程踩了一些坑,但也跑通了一套还算顺手的工作流。这篇文章就是一份完整的记录,希望能帮到遇到类似问题的朋友。

如果你已经看过我之前的博客(比如《在 Ubuntu 26.04 中基于 Docker Compose + Go 1.26.4 完成基础环境的搭建》),那这篇可以算是“下一篇”——从代码提交到容器运行,全部串起来。


一、宿主机上的准备工作

1.1 安装 Git 并配置用户信息

首先确保宿主机有 Git,然后设置全局用户名和邮箱(这些信息会写在每次 commit 里):

git config --global user.name "shuijingwan"
git config --global user.email "shuijingwanwq@163.com"

验证一下:

git config --global user.name
git config --global user.email

1.2 配置 GitHub 认证(使用 Token)

从 2021 年起 GitHub 不再支持密码认证,需要生成 Personal Access Token。

  • 登录 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
  • 点击 Generate new token (classic)
  • 勾选 repo 权限,生成后复制 token(只显示一次)
  • 在宿主机终端执行:
git push origin main

当提示输入用户名时输入你的 GitHub 用户名,密码处粘贴刚才复制的 token。成功后 Git 会记住认证信息(如果配置了 credential helper)。

1.3 安装 Go(宿主机)

为了让 Trae CN 中的代码补全、语法跳转正常工作,需要在宿主机安装 Go。我选择了使用 APT 安装,简单省事:

sudo apt update
sudo apt install golang-go -y
go version

输出:go version go1.26.0 linux/amd64

其实系统“软件”中心里也有 Go 的 Snap 版本(见截图),但 APT 更轻量,且与容器内的 Go 版本兼容。

软件中心中 Go 的可用版本
软件中心中 Go 的可用版本

1.4 在 Trae CN 中安装 Go 扩展

打开 Trae CN 的扩展商店,搜索 Go,找到官方扩展(发布者为 golang)并安装。

扩展商店中的 Go 扩展
扩展商店中的 Go 扩展

安装完成后,按 Ctrl+Shift+P,输入 Go: Install/Update Tools,在弹出的列表中勾选 goplsdlvstaticcheck 等常用工具,点击确定。

选择要安装的 Go 工具
选择要安装的 Go 工具

等待安装完成,然后重新加载窗口。

至此,宿主机上的代码编辑环境已经就绪。

在 main.go 中输入 fmt. 应该能看到智能提示。
main.go 中输入 fmt. 应该能看到智能提示。

二、容器中的开发环境

2.1 让容器复用宿主机的 Git 配置

我们希望在容器内执行 git commit 时也能使用宿主机的用户名和邮箱。修改 docker-compose.yml,挂载 ~/.gitconfig

volumes:
  - ./:/code
  - ~/.gitconfig:/root/.gitconfig:ro

重启容器后,进入容器验证:

docker exec -it go-gin-learning sh
git config --global user.name   # 应显示 shuijingwan
git config --global user.email  # 应显示 shuijingwanwq@163.com

2.2 解决 Go 模块下载慢的问题

一开始容器内执行 go mod tidy 总是失败或超时,因为默认代理 goproxy.io 不稳定,而且每次容器重建都会清空缓存。

解决方案有两个:

  • 设置更稳定的代理:go env -w GOPROXY=https://goproxy.cn,direct
  • 持久化模块缓存:将宿主机的目录挂载到容器的 /go/pkg/mod

我采用了后者,在 docker-compose.yml 中添加:

volumes:
  - ~/go/pkg-mod-go-gin-learning:/go/pkg/mod

这样容器内的依赖包会存放在宿主机的一个专用目录中,即使容器删除也不会丢失。再次执行 go mod tidy 时,所有 go: downloading 都成功了。

2.3 运行 Gin 服务

在容器内执行:

go run main.go

看到如下输出说明服务启动成功:

[GIN-debug] Listening and serving HTTP on 0.0.0.0:8080

用浏览器访问 http://localhost:8080/albums,返回 JSON 数据,状态码 200。

浏览器中的请求响应正常
浏览器中的请求响应正常

这时在 Trae CN 的 Docker 扩展面板中,可以右键容器选择 Attach Shell,方便地打开容器终端。

Docker 扩展面板的容器操作菜单
Docker 扩展面板的容器操作菜单

三、总结与标准化展望

当前工作流小结

  1. 宿主机:负责 Git 操作、代码编辑、Go 语言服务器(gopls)。
  2. 容器:负责运行 go rungo test,依赖模块通过挂载的缓存目录持久化。
  3. Trae CN:通过 Go 扩展提供智能补全,通过 Docker 扩展附加到容器终端,做到“编辑在宿主机,运行在容器”。

虽然 Dev Containers 在 Trae CN 上暂时不可用,但通过“宿主机 Go + 容器运行 + 缓存持久化”的组合,我们依然获得了一个高效、可靠的开发环境。
(顺便说一句,.devcontainer/devcontainer.json 我并没有删除,因为团队里其他使用 VS Code 的成员可能还需要它。)

未来可以标准化的点

  • 使用 Makefile 封装常用命令:比如 make runmake testmake tidy,减少手动输入。
  • 集成 Air 热加载:在容器内安装 air,保存文件后自动重启服务,提升开发效率。
  • 将环境配置写成脚本:把 docker-compose.yml 的 volumes 设置、代理配置、依赖安装等写成 setup.sh,方便新成员快速加入。
  • 考虑使用 Remote – SSH:如果未来团队都在同一台服务器上开发,可以改用 SSH 远程开发,彻底统一环境。
在 Trae CN 中尝试 Dev Containers:一次不太成功的踩坑记录 告别微信窗口限制:在 Ubuntu 26.04 使用 Flameshot 绑定全局 Alt+A 截图

Linux 服务器运维、部署与线上故障排查

如果你的网站或后端服务部署在 Linux 服务器上,遇到访问异常、Nginx 配置问题、MySQL / Redis 异常、Docker 服务不可用、磁盘占满、CPU / 内存过高等问题,可以联系我做一次远程排查。

适合以下场景:
✅ 网站打不开或访问不稳定
✅ Nginx / PHP-FPM 配置异常
✅ MySQL / Redis 性能或连接问题
✅ Docker 服务部署与维护
✅ 服务器迁移与环境配置
✅ CPU / 内存 / 磁盘异常排查

服务内容:
✅ Linux 环境检查
✅ 网站部署与迁移
✅ Nginx / PHP-FPM / MySQL / Redis 排查
✅ Docker 配置与维护
✅ 服务器性能分析
✅ 长期远程运维支持

如需咨询,请联系我,并注明:Linux 运维咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理