我正在尝试使用CompileDaemon使用Docker热加载go项目。
我的文件夹结构如下所示
my-api
- server
- main.go
- Dockerfile
- docker-compose.yml
- Makefile
这是我得到的错误:
go build github.com/firstApi/test-platform/lib/my-api/server: build output "server" already exists and is a directory
这是我的dockerfile的样子
FROM golang:1.12-stretch
ENV GO111MODULE=on
WORKDIR /go/src
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN ["go", "get", "github.com/githubnemo/CompileDaemon"]
RUN go test ./... \
&& CGO_ENABLED=0 go build -v -a -installsuffix cgo -o /main server/main.go
ENTRYPOINT CompileDaemon -log-prefix=false -build="go build ./server" -command="./main"
有什么主意我做错了什么以及我需要更改才能解决此问题?
更新*****
我尝试了唯一答案所建议的解决方案,但现在出现以下错误:
Could not start command:%!(EXTRA *errors.errorString=can't start command: fork/exec ./server: permission denied)
答案 0 :(得分:1)
您的默认go构建尝试输出与目录相同的名称。您可以更改构建和ENTRYPOINT行,以引用“进行构建-o apiserver”。