Tag:

GO – 本地导入不起作用

我是golang的新手,我想构build我的第一个简单的Web应用程序。 每次我想build立我的源,我得到一个错误的locale import "./controllers" in non-local package" 。 这是我的文件夹结构: goTest ├── Dockerfile ├── controllers │ └── IndexController.go └── main.go main.go文件: package main import ( "github.com/julienschmidt/httprouter" "net/http" "log" "./controllers" ) func main() { router := httprouter.New() router.GET("/", IndexController) log.Fatal(http.ListenAndServe(":8080", router)) } IndexController.go文件: package controllers import ( "fmt" ) func IndexController(w http.ResponseWriter, r *http.Request, ps httprouter.Params) error […]

Docker LVM插件安装问题

即时通讯试图安装在这个链接中给出的docker lvm插件,当我执行make命令时,会抛出以下错误。 pr@pr-ubuntu:~/ba/docker-lvm-plugin$ make go-md2man -in man/docker-lvm-plugin.8.md -out docker-lvm-plugin.8 /usr/bin/go build -o docker-lvm-plugin . utils.go:14:2: cannot find package "github.com/docker/docker/pkg/system" in any of: /usr/local/go/src/github.com/docker/docker/pkg/system (from $GOROOT) /home/pr/programming/go/packages/src/github.com/docker/docker/pkg/system (from $GOPATH) driver.go:10:2: cannot find package "github.com/docker/go-plugins-helpers/volume" in any of: /usr/local/go/src/github.com/docker/go-plugins-helpers/volume (from $GOROOT) /home/pr/programming/go/packages/src/github.com/docker/go-plugins-helpers/volume (from $GOPATH) make: *** [lvm-plugin-build] Error 1 我相信它在寻找docker go-plugin-helpers,我在这里看到这些包,但不知道如何在我的GOPATH中安装。 https://github.com/docker/go-plugins-helpers

无法在OSX上使用Docker公开Web服务器

我有一个运行Web服务器的docker图像,我想从我的本地OSX访问它,但我有问题。 我启动容器: docker run -p 8000:8000 <container-name> 我可以看到日志消息告诉我本地服务器正在监听localhost:8000 我能够从运行中获得成功的响应: docker exec <IMAGE-ID> curl "http://localhost:8000/" 我在本地OSX上试过的地址是: http://localhost:8000/ http://<DOCKER-IP-172.17.0.2:8000/ 这些都没有工作。 有什么build议么? 容器是从golang:1.8 Docker版本: Version 17.03.1-ce-mac5 (16048) MacOS Sierra: 10.12.4 出于testing目的,防火墙已closures 我已经在Ubuntu 16.04上尝试了相同的过程,也没有运气。

将文件从Golang中的Docker镜像拖到本地文件系统

我试图找出如何使用Go客户端( http://godoc.org/github.com/moby/moby/client )从特定版本(标签)的docker镜像中提取文件, 我想下载图像,然后将图像中的文件复制到本地文件系统。 我看到很多处理图像的命令,但不知道如何访问它的内容。 我确实看到了访问容器内容的方法。 我怀疑我需要下载图像,与图像创build一个容器,并最终复制容器中的内容。 虽然如果我可以避免创build一个容器,那将是首选。 有谁知道如何做到这一点? 代码片断将不胜感激。 谢谢!

从数据streamDocker GO SDK解码JSON

我想使用Client.ContainerStats(ctx context.Context,containerID string,stream bool)方法来获取容器的stream式统计信息。 据我所知,如果我传递给stream参数,Docker将不会closures连接,并定期发送包含容器统计信息的JSON。 不过,我不知道如何解码JSON,因为我不知道JSON数据在哪里开始和结束。 我现在使用的是,我不使用stream选项,只是定期获取数据,然后像这样解码。 stats, err := dockerClient.ContainerStats(ctx, container.ContainerID, false) msgBytes, _ := ioutil.ReadAll(stats.Body) var containerStats ContainerStats err = json.Unmarshal(msgBytes, &containerStats) 我在寻找的是一个函数,当我调用它的时候会阻塞,然后当它接收到JSON数据(我的意思是完整的JSON数据可以被解码)时,它将返回包含从JSON解码的数据的结构,然后我可以调用函数再次获得下一个统计数据,而不必向Docker发出新的请求。

这个Docker命令是如何生成一个小GoLang容器的?

docker工人在这里。 我按照这里的说明为我的Go项目制作了一个纤细的装饰容器。 我不完全理解它在做什么,希望有人能够启发我。 具体来说有两个步骤来生成这个docker集装箱。 docker run –rm -it -v "$GOPATH":/gopath -v "$(pwd)":/app -e "GOPATH=/gopath" -w /app golang:1.8 sh -c 'CGO_ENABLED=0 go build -a –installsuffix cgo –ldflags="-s" -o hello' docker build -t myDockerImageName . DockerFile本身只包含 FROM iron/base WORKDIR /app COPY hello /app/ ENTRYPOINT ["./hello"] 我理解(广义上),第一步是编译go程序并静态链接C依赖关系(并在一个未命名的docker容器中完成所有这些)。 第二步是根据DockerFile中的指令生成docker镜像。 我不明白的是为什么第一个命令是以docker run开始的(为什么它需要在Docker容器中运行?为什么我们不只是生成外部的Go二进制文件,然后复制它?) 如果它在docker容器中运行,Docker容器中的二进制文件如何在我的本地机器的文件系统上被丢弃?(例如,为什么我需要将二进制文件复制回镜像 – 就像它在线做的那样3的DockerFile?)

用于构buildGolang二进制文件的Docker映像

我有一个Go应用程序,我将其构build为一个二进制文件并将其作为Docker映像进行分发。 目前,我使用ubuntu作为我的基本映像,但是这会导致一个问题,如果用户尝试使用除UTC以外的时区或其本地时区,则会显示以下错误消息: pod error: panic: open /usr/local/go/lib/time/zoneinfo.zip: no such file or directory 此错误是由于Go中的LoadLocation包需要该文件而引起的。 我可以想出两个方法来解决这个问题: 继续使用ubuntu基础映像,但在我的Dockerfile中添加命令: RUN apt-get install -y tzdata 使用Golang的基本图像之一,例如。 golang:1.7.5-alpine 。 什么是推荐的方式? 我不确定是否需要或应该使用Golang映像,因为这是预构build二进制文件运行的容器。 我的理解是,Golang图像对于首先构build二进制文件非常有用。

Golangselenium包 – 连接到selenium服务器和无头铬

我正在使用Go selenium包https://godoc.org/github.com/tebeka/selenium 我在localhost:4444上的Docker容器中运行了无头的chrome + selenium-server 服务器似乎没有问题,因为我可以通过http:// localhost:4444 / wd / hub / static / resource / hub.html访问Web控制台 但是我试图让“Hello world”示例与现有的docker容器一起工作。 这是来自Selenium驱动的GoDocs页面的例子: // Run some code on play.golang.org and display the result package main import ( "fmt" "time" "github.com/tebeka/selenium" ) var code = ` package main import "fmt" func main() { fmt.Println("Hello WebDriver!\n") } ` // Errors […]

golang应用程序如何在aws服务器中使用docker与postgres对话?

我有一个这样的docker实例 docker run –name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d postgres:latest 在服务器上运行 我有我的golang应用程序包装在docker运行在同一台服务器 func main() { db, _ := sql.Open("postgres", "postgres://postgres:@192.168.99.100:5432/postgres?sslmode=disable") http.HandleFunc("/test", handler) http.ListenAndServe(":8080", nil) } 以上是不工作,因为IP是不正确的。 由于我使用mac,我需要使用docker机ip连接到dockerpostgres数据库,但在aws我不 什么是configuration这个好方法?

docker go-wrapper脚本如何工作

嘿任何人都可以向我解释什么dockergo-wrapper应该做什么? https://github.com/docker-library/golang/blob/master/go-wrapper关注此评论: 这个脚本可以让我们获取Go源文件的通用目录,比如“/ go / src / app”,并且确定代码期望生存和引用的规范的“导入path”是“github.com/jsmith/我酷 – 应用”。 然后确保“/go/src/github.com/jsmith/my-cool-app”是“/ go / src / app”的一个符号链接,允许我们使用正确的包名来构build和运行它。 我明白,如果我正在开发一个项目下我的github去path然后挂载它/go/src/appdocker集装箱内的工作与import仍保持不变(github导入)正确? COPY . /go/src/app WORKDIR /go/src/app RUN go-wrapper download RUN go-wrapper install 但是,当我尝试安装/使用dep的供应商运行 go get -u github.com/golang/dep/cmd/dep dep init dep ensure -update 它将我的回购下载到供应商,然后尝试从那里导入它为什么?