【问题标题】:dockerfile install go local packages can be possible?dockerfile install go local packages 可以吗?
【发布时间】:2017-10-02 15:08:09
【问题描述】:


我正在尝试使用我的 golang 项目创建一个 docker 映像。该项目有一些本地包,如 math:

/myproject/
  src/
    main.go
    utils/
      math.go

在 main.go 中,我包含了很多包,还包含来自 math.gomath
我的 docker 文件如下所示:

FROM golang:latest

ENV GOPATH=/golib/

RUN /usr/local/go/bin/go get github.com/julienschmidt/httprouter

CMD /usr/local/go/bin/go run main.go

EXPOSE 10004

由于它是本地包,所以我如何也包含数学包,所以它没有部署在 github 上?

yml 文件:

services:
    cozonac:
       image: cozonac:local
       ports:
         - "10004:10004"
       volumes:
         - ./src/:/go/


谢谢

【问题讨论】:

  • 您需要将代码添加或复制到图像中。另外,不要使用go run。那是一个玩具。请改用go buildgo install
  • 您是如何将myproject 放入您的容器中的?
  • 我为docker添加了yml文件
  • @Lucian:如果您将src 目录挂载为一个卷,并且您可以构建主包,那么utils 也在那里。你到底有什么问题?
  • 哦,是的,彼得是对的。您将代码放在默认的 GOPATH 中,然后更改 GOPATH。

标签: docker go docker-compose dockerfile


【解决方案1】:

你应该试试下面

services:
    cozonac:
       image: cozonac:local
       ports:
         - "10004:10004"
       volumes:
         - ./src/:/go/
       environment:
         - GOPATH=/golib/:/go/

仅针对这种情况,您可以将文件夹附加到 GOPATH

【讨论】:

  • 我通过更改卷以匹配我的本地路径来修复它:卷: - ./src/:/usr/local/go/src/gitlab/golang/login/src/ 并运行 main。也从这个路径进入 dockerfile
猜你喜欢
  • 2019-10-21
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 2017-04-25
相关资源
最近更新 更多