【问题标题】:docker-compose cannot find packagedocker-compose 找不到包
【发布时间】:2019-01-02 15:02:54
【问题描述】:

我正在用 GO 编写一个简单的应用程序,我有这个文件夹结构

docker-compose.yml 文件内容为:

version: '2'
services:
  db:
    image: rethinkdb:latest
    ports:
      - "38080:8080"
      - "38015:28015"
      - "39015:29015"
  api:
    image: golang:1.8-alpine
    volumes:
      - .:/go/src/test_server/
    working_dir: /go/src/test_server
    command: go run server.go
    container_name: test_server
    ports:
      - "8085:8085"
    links:
      - db
    tty: true

每次我运行 docker-compose up 我都会收到以下错误消息:

测试服务器 | controllers/users.go:4:3: 找不到包 “_/go/src/test_server/vendor/github.com/gin-gonic/gin” 中的任何一个: 测试服务器 |
/usr/local/go/src/_/go/src/test_server/vendor/github.com/gin-gonic/gin (来自 $GOROOT)test_server |
/go/src/_/go/src/test_server/vendor/github.com/gin-gonic/gin(来自 $GOPATH)

它指的是控制器包。我正在使用 github.com/kardianos/govendor 来销售我的包。你知道发生了什么事吗?

【问题讨论】:

    标签: docker go docker-compose govendor


    【解决方案1】:

    几个小时后,我终于可以修复它了。 结果我使用了一个不包含 git 的 docker golang 版本。我应该使用 golang:1.8

    我像这样修改了我的 Dockerfile,现在它就像一个魅力

    FROM golang:1.8
    
    RUN go get github.com/gin-gonic/gin
    
    WORKDIR /go/src/app
    COPY . .
    
    RUN go install -v
    
    CMD ["app"]
    

    【讨论】:

    • 它给出错误:go:缺少 Git 命令。见golang.org/s/gogetcmd,你也知道如何解决这个问题吗?
    【解决方案2】:

    你需要告诉去哪里找到这些包:

    api:
      ...
      environment:
        - GOPATH=/go/src/test_server
    

    或者有一个安装了正确软件包的 Dockerfile(推荐)

    【讨论】:

    • 我做到了,但它不起作用,现在的错误信息是这样的:test_server | ers/users.go:4:3:在以下任何一个中都找不到包“github.com/gin-gonic/gin”:test_server | /usr/local/go/src/github.com/gin-gonic/gin (来自 $GOROOT) test_server | /go/src/test_server/src/github.com/gin-gonic/gin (来自 $GOPATH) 我也尝试使用 Dockerfile,因为我虽然它是一个更优雅的解决方案,但每次构建它时,我都会收到错误:这个是 Dockerfile 内容: FROM golang:1.8-alpine RUN go get github.com/gin-gonic/gin EXPOSE 8085
    【解决方案3】:

    我认为这是因为您更新的代码正在运行 go install,而不是运行旧代码的 go run。

    您需要将额外的 golang 包安装到您从应用程序调用的供应商目录中。

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多