【发布时间】:2019-12-19 00:13:15
【问题描述】:
在 docker-compose 的构建过程中寻找安装 Go 包的帮助。特别是去科利。
设置:
docker-compose.yml
services:
crawler:
container_name: crawler
build: ./crawler/
working_dir: /go/src/crawler
volumes:
- ./data:/go/src/crawler/data
- ./crawler:/go/src/crawler
Dockerfile
FROM golang:1.7-alpine
ADD . /go/src/crawler
WORKDIR /go/src/crawler
RUN \
apk add --no-cache bash git openssh && \
go get github.com/golang/example/stringutil/... && \
go get github.com/gocolly/colly/... && \
go install
CMD ["go","run","collect.go"]
package main
import (
"fmt"
"github.com/golang/example/stringutil"
"github.com/gocolly/colly/v2"
)
func main() {
fmt.Println(stringutil.Reverse("!selpmaxe oG ,olleH"))
c := colly.NewCollector()
// Find and visit all links
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
e.Request.Visit(e.Attr("href"))
})
c.OnRequest(func(r *colly.Request) {
fmt.Println("Visiting", r.URL)
})
c.Visit("http://go-colly.org/")
}
如果我在没有 Colly 的情况下运行项目,即。只需"github.com/golang/example/stringutil" 然后项目安装包并正确运行,但是使用 Colly 我得到:
OK: 34 MiB in 25 packages
package github.com/gocolly/colly
imports github.com/gocolly/colly/v2/debug: cannot find package "github.com/gocolly/colly/v2/debug" in any of:
/usr/local/go/src/github.com/gocolly/colly/v2/debug (from $GOROOT)
/go/src/github.com/gocolly/colly/v2/debug (from $GOPATH)
package github.com/gocolly/colly
imports github.com/gocolly/colly/v2/storage: cannot find package "github.com/gocolly/colly/v2/storage" in any of:
/usr/local/go/src/github.com/gocolly/colly/v2/storage (from $GOROOT)
/go/src/github.com/gocolly/colly/v2/storage (from $GOPATH)
package github.com/gocolly/colly/extensions
imports github.com/gocolly/colly/v2: cannot find package "github.com/gocolly/colly/v2" in any of:
/usr/local/go/src/github.com/gocolly/colly/v2 (from $GOROOT)
/go/src/github.com/gocolly/colly/v2 (from $GOPATH)
ERROR: Service 'crawler' failed to build: The command '/bin/sh -c apk add --no-cache bash git openssh && go get github.com/golang/example/stringutil/... && go get github.com/gocolly/colly/... && go install' returned a non-zero code: 1
我最初的想法是安装- ./crawler:/go/src/crawler 会覆盖包,但后来我对为什么github.com/golang/example/stringutil 工作正常感到困惑。
【问题讨论】:
-
我认为您需要查看特定标签
v2.0.0 -
package github.com/gocolly/colly@[v2.0.0]: invalid github.com/ import path "github.com/gocolly/colly@[v2.0.0]" -
请问您使用 Go 1.7 而不使用 Go 模块是否有特定原因?
标签: docker go docker-compose