关于 docker-compose 搭建 Golang Go语言本地开发环境的问题

发布于 1周前 作者 sinazl 来自 Go语言

关于 docker-compose 搭建 Golang Go语言本地开发环境的问题

目前公司的项目结构大致如下:

project
├── Makefile
├── README.md
├── apps
│   ├── app1
│   ├── app2
│   ├── app3
│   ├── app4
│   ├── app5
│   └── app6
├── conf
├── config
├── mods
├── db
├── docker-compose.dev.yml
├── docker-compose.yml
├── go.mod
├── go.sum
├── helper
├── message
└── utils

多个 app 共用一个 go.mod 管理,也共享外面的公共类库。

每个 app 目录下只包含一个简单 main 函数启动服务,大部分的业务逻辑都写在 mods 目录下的对应的模块 package 下,每个模块 package 可能会被多个 app 导入。

整个项目需要所有的 app 服务都启动,目前我是用 docker-compose 把每个 app 都单独打入一个镜像编译并运行。 每个镜像我都把整个项目 COPY 进去编译,只忽略了 apps 目录。

现在问题是,当我修改 mods 或其他共享 package 的代码时,再 docker-compose build 会导致所有镜像都从 COPY 开始缓存失效,导致所有 app 都重新编译,不管我修改的地方有没有被这个 app 引入。

一个很小的改动都需要十几分钟才能看效果,真是太难受了。。。

不知道大家都是怎么搭建本地开发环境的?


更多关于关于 docker-compose 搭建 Golang Go语言本地开发环境的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

回到顶部