设置 docker-compose 以监视多包 golang 项目的变化



我正在为我的go应用程序使用标准结构。

它是这样构建的:

cmd
app
main.go
internal
app
server.go
pkg
users
...
pkg
dependency
...
web
app
...
docker-compose.yml
Dockerfile

但是,问题在于,使用这种结构,很难挂载和构建应用程序依赖项。例如,我使用诸如fresh之类的文件观察器,它只监视单个目录并运行特定文件。如果我更新说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的功能等效(我的日志触发解析守护程序以进行错误检查(

但你是对的,鉴于你的用例,可能有一种更简单的方法

最新更新