我正在将standard structure用于我的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"]
有帮助吗?
答案 0 :(得分:1)
我会回退到该fresh
回购并询问他们
如果文件更改已保存到git中,则可以设置webhook like https://github.com/adnanh/webhook来监听这些git push
动作以触发重建
但是,如果只是编辑内容,则可以使用类似的方式滚动自己的内容
https://github.com/hpcloud/tail
对我发现可以正常工作的任意文件/目录集执行与tail -f
等效的功能(我的日志触发了一个解析守护程序以进行错误检查)
但是您说得对,鉴于您的用例,也许有一种更简单的方法