docker - 设置 docker-compose 以观察多包 golang 项目的变化
问题描述
我正在为我的 go 应用程序使用标准结构。
它是这样构建的:
cmd
app
main.go
internal
app
server.go
pkg
users
...
pkg
dependency
...
web
app
...
docker-compose.yml
Dockerfile
然而问题在于,使用这种结构很难安装和构建应用程序依赖项。例如,我使用了诸如fresh之类的文件观察器,它只观察一个目录并运行一个特定的文件。如果我更新 say pkg/dependency
,它将看不到这些更改。
docker-compose 看起来像:
version: "3.1"
services:
core:
build: .
depends_on:
- mongo
- memcached
ports:
- 8080:8080
environment:
APP_ENV: dev
volumes:
- .:/go/src/github.com/me/app
mongo:
image: mongo
ports:
- 27017:27017
memcached:
image: memcached
ports:
- 11211:11211
Dockerfile:
FROM golang:1.10.0
WORKDIR /go/src/github.com/me/app
COPY . .
RUN go get -u github.com/golang/dep/cmd/dep
RUN dep ensure
WORKDIR /go/src/github.com/me/app/cmd/app/
RUN go install
RUN go get github.com/pilu/fresh
CMD ["fresh"]
有什么帮助吗?
解决方案
我会推回那个fresh
回购并问他们
如果您的文件更改被保存到 git,那么您可以设置一个像 https://github.com/adnanh/webhook 这样的 webhook 来监听这些git push
操作以触发您的重建
但是,如果它们只是编辑,那么您可以使用类似
https://github.com/hpcloud/tail
tail -f
在我发现可以很好地工作的任意文件/目录集上执行与 a 等效的功能(我的日志触发解析守护程序以进行错误检查)
但你是对的,考虑到你的用例,可能有更简单的方法
推荐阅读
- c# - 根据功能区 VSTO Excel 上打开的工作簿文件设置选项卡的可见性
- wordpress - ACF 元键字段在后网格插件 wordpress 中字段为“关系”类型时显示数组
- reactjs - 如何使用反应钩子执行多个异步请求?
- remote-debugging - Visual Studio 将文件夹复制到远程机器不起作用
- sql - 如何从雪花数据库中的 Varchar“JSON Array”中选择元素?
- amazon-cloudfront - 将现有 lambda 边缘迁移到无服务器框架
- flutter - 如何从 Future 启动 ValueNotifier 值
- python - PyQT:在窗口中获取实时打印输出
- javascript - 为什么第一次渲染时 TextInput 的高度会发生变化?
- kubernetes - Nginx 入口 - 连接到上游时(连接被拒绝)