Я использую стандартную структуру для моего приложения 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"]
Любая помощь?