进行构建:构建输出“ api”已经存在并且是目录

时间:2019-05-30 16:29:31

标签: docker go dockerfile

我正在尝试使用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)

1 个答案:

答案 0 :(得分:1)

您的默认go构建尝试输出与目录相同的名称。您可以更改构建和ENTRYPOINT行,以引用“进行构建-o apiserver”。

相关问题