设置docker compose以监视多包golang项目的更改
我正在使用go应用程序 它是这样建造的:设置docker compose以监视多包golang项目的更改,docker,go,Docker,Go,我正在使用go应用程序 它是这样建造的: cmd app main.go internal app server.go pkg users ... pkg dependency ... web app ... docker-compose.yml Dockerfile 然而,问题是,使用这种结构很难装载和构建应用程序依赖项。例如,我使用一个文件监视程序,例如,它只监视一个目录并运行一个特定的文件。如果我更新saypkg/d
cmd
app
main.go
internal
app
server.go
pkg
users
...
pkg
dependency
...
web
app
...
docker-compose.yml
Dockerfile
然而,问题是,使用这种结构很难装载和构建应用程序依赖项。例如,我使用一个文件监视程序,例如,它只监视一个目录并运行一个特定的文件。如果我更新saypkg/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
repo并询问他们
如果您的文件更改被保存到git,那么您可以设置一个侦听这些git推送
操作来触发重建
但是,如果它们只是编辑,那么您可以使用类似于
在任意一组文件/dir上执行相当于tail-f
的功能,我发现这些文件/dir工作得很好(我的日志触发了一个用于错误检查的解析守护进程)
但是你是对的,考虑到你的用例,可能有一种更简单的方法当你给你现有的文件更改监控工具上面所有代码目录的父目录时会发生什么?它说找不到可运行的go文件我想我可能不得不写一些基本上看每个包的东西,在更改时,重新安装软件包,然后重新启动服务器…谢谢。我要签出这两个链接。我可能最终会使用一些通用的东西——不必是go,我猜其他语言可能已经解决了这个问题。