dsvjw20866 2018-07-07 04:05
浏览 183

Docker中的Golang Build找不到本地导入

I am pretty new to GoLang. I have a pretty simple dockerFile that is trying to build a goLang webservice.

FROM golang:alpine

WORKDIR /app/webservice_refArch
ADD . /app/webservice_refArch

RUN apk add git
RUN apk upgrade

RUN cd /app/webservice_refArch/ && go get webservice_refArch/restapi
RUN cd /app/webservice_refArch/cmd/reference-w-s-server && go build -o ../../server
ENTRYPOINT ./goapp

When the build runs it cannot find a local import.

go get webservice_refArch/restapi

The error that I get is:

package webservice_refArch/restapi: unrecognized import path "webservice_refArch/restapi" (import path does not begin with hostname)

When I run that same command on my local (in the same folder) it runs just fine. I am sure that I am missing something stupid but any thoughts on why it fails when running from docker would be appreciated.

  • 写回答

3条回答 默认 最新

  • dragon7088 2018-07-07 04:32
    关注

    It was because I wasn't copying over to my GOROOT location. As a result, when it was trying to find the local resource it wasn't in the GOROOT spot.

    Changing the dockerFile to look like this worked...

    FROM golang:alpine
    
    WORKDIR /go
    ADD . /go/src/webservice_refArch
    
    RUN apk add git
    RUN apk upgrade
    
    RUN cd /go/src/webservice_refArch/ && go get ./...
    RUN cd /go/src/webservice_refArch/cmd/reference-w-s-server && go build -o ../../server
    ENTRYPOINT ./goapp
    
    评论

报告相同问题?

悬赏问题

  • ¥15 科来模拟ARP欺骗困惑求解
  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)