Tag:

用户:目前没有实施在Linux / amd64与golang使用docker从头开始

我已经使用这个教程编译我的应用程序运行在从头开始的容器上运行。 我的代码使用os/user user.Current() 。 当我使用博客文章中的技术时,运行容器时出现以下错误: user: Current not implemented on linux/amd64 详细说明: 这是用来编译的命令: CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . 这是用于创build图像( scratch )的Dockerfile: FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / ENTRYPOINT ["/main"] 这是用来运行容器的命令: sudo docker run -it -v /var/run/docker.sock:/var/run/docker.sock –rm 813 有没有人遇到过这个? 任何解决scheme

如何为私人注册login凭证创build“RegistryAuth”

我使用以下命令创build了一个私人registry: docker run -d -p 5000:5000 –restart = always –nameregistry-e REGISTRY_STORAGE_DELETE_ENABLED = trueregistry:2 我正尝试使用Golang docker客户端API – > ImagePush将图像推送到此registry func(cli * Client)ImagePush(ctx context.Context,图像string,选项types.ImagePushOptions)(io.ReadCloser,错误) 当我放大到ImagePushOptions我看到的结构是 typesImagePullOptions结构{所有bool RegistryAuthstring// RegistryAuth是registry的PrivilegeFunc RequestPrivilegeFunc的base64编码凭据} AnyIdea如何创buildRegistryAuthstring 我试着做下面的事情: 键入AuthArgs结构{用户名stringJSON:“用户名”密码stringJSON:“密码”电子邮件stringJSON:“电子邮件”ServerAddressstringJSON:“serveraddress”} func(){ m:= AuthArgs {“docker”,“docker”,“”,“localhost:5000”} b,err:= json.Marshal(m) fmt.Println(string(b))encodeStr:= base64.StdEncoding.EncodeToString(b) refStr:=“localhost:5000 /”+ image +“:”+ tag fmt.Println(refStr)resp,err:= cli.ImagePush(ctx,refStr,types.ImagePushOptions {RegistryAuth:encodeStr})天,任何帮助将是伟大的

我怎样才能从github上导入图书馆到GO游乐场?

您好我想导入一个第三方库去操场,我看到了这个问题的答案: https : //stackoverflow.com/a/27813778/6638204但它说,这是不能做的,但西安/ github上的操场库说它可以做到这一点。 我尝试使用它,但我不明白我该怎么做。 我成功安装了库,并用它来运行不需要第三方库的程序。 但我没有得到如何导入第三方库。 ps:我在我的机器上安装了docker

从Go代码构buildDocker镜像

尝试使用Docker API和Docker Go库构buildDocker镜像: https : //github.com/docker/engine-api/ 代码示例: package main import ( "fmt" "github.com/docker/engine-api/client" "github.com/docker/engine-api/types" "golang.org/x/net/context" ) func main() { defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"} cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.22", nil, defaultHeaders) if err != nil { panic(err) } fmt.Print(cli.ClientVersion()) opt := types.ImageBuildOptions{ CPUSetCPUs: "2", CPUSetMems: "12", CPUShares: 20, CPUQuota: 10, CPUPeriod: 30, Memory: 256, MemorySwap: 512, […]

在Dockerfile中获取Protobuf的错误

这是我的Dockerfile: FROM golang RUN apt-get update RUN go get -u github.com/golang/protobuf/{proto,protoc-gen-go} 这会产生这个错误: package github.com/golang/protobuf/{proto,protoc-gen-go}: invalid github.com/ import path "github.com/golang/protobuf/{proto,protoc-gen-go}" 但是,如果我取出那个RUN指令,并且在docker容器中加载/bin/bash ,我可以运行go get命令就好了。 这是怎么回事?

Docker隐藏调用容器的IP

免责声明: 我是一个networking新手。 原谅我,如果我不使用适当的词汇来形容我的问题。 语境: 所以我有几个在CoreOS上运行的应用程序容器(Docker)。 每个容器必须具有不同的IAMangular色。 由于在同一个主机上可能会有N个不同的IAMangular色运行,因此使用EC2实例元数据( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2- instance-metadata.html )来检索实例凭证。 每个容器都需要一组不同的凭证(因为每个容器都有不同的angular色)。 为了解决这个问题,我偶然发现这个项目https://github.com/dump247/docker-ec2-metadata这是一个Go代理拦截(使用iptables规则)调用http://169.254.169.254/latest / meta-data / iam / security-credentials /,并根据调用容器的IAMangular色提供适当的凭据。 iptables规则(请参阅https://github.com/dump247/docker-ec2-metadata/blob/master/README.md )重新路由呼叫是: # Get the host IP address. You can use a different mechanism if you wish. # Note that IP can not be 127.0.0.1 because DNAT for loopback is not possible. PROXY_IP=$(ifconfig eth0 | grep […]

AWS Docker Golang。 'eb deploy'错误

我正在尝试将golang docker部署到AWS。 我使用预定义的FROM golang:1.4.2-onbuild 本地运行 – 精美的作品,没问题。 如果我压缩并上传压缩文件,它在AWS上工作没有问题。 …但是当我尝试'eb部署'我不断收到这个错误。 任何build议,请。 谢谢。 bash-3.2$ eb deploy WARNING: Deploying a previously deployed commit. INFO: Environment update is starting. INFO: Deploying new version to instance(s). WARN: Failed to build Docker image aws_beanstalk/staging-app, retrying… ERROR: Failed to build Docker image aws_beanstalk/staging-app: urce files in /go/src/app [0mtime="2015-08-28T03:48:44Z" level="info" msg="The command [/bin/sh […]

用gdb或cgdbdebuggingdocker deamon

我一直在尝试debugging,并在主机操作系统(ubuntu 14.04 OS)上运行的Ubuntu 14.04容器上使用gdb或cgdb进入cgdb守护进程代码。 在构build容器中的debugging二进制文件时,我使用了-O0 -g标志。 在容器中使用的版本: # go version go version go1.4.3 linux/amd64 我无法通过使用cgdb的代码: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"… Reading symbols from bundles/1.9.0-dev/dynbinary/docker…done. ( gdb) b main.handleGlobalDaemonFlag Breakpoint 1 at 0x497b30 (gdb) r daemon -D Starting program: /go/src/github.com/docker/docker/bundles/1.9.0-dev/dynbinary/docker daemon -D [Thread debugging using libthread_db […]

Go不能创buildRabbitMQ频道。 Docker容器上的RabbitMQ服务器,主机上的Go脚本

我在Docker容器上运行RabbitMQ服务器,并且无法从主机打开RabbitMQ通道。 Docker容器以这种方式从RabbitMQ映像运行,将pipe理端口和amqp端口转发给主机: docker run -d -p 5672:5672 -p 15672:15672 –hostname my-rmq –name rmq rabbitmq:3-management go脚本的频道部分非常简单: ch, err := conn.Channel() failOnErrorRmq(err, "Failed to open a channel") defer ch.Close() 我得到以下错误 Failed to open a channel: write tcp [::1]:51937->[::1]:5672: use of closed network connection 我是RabbitMQ的新手。 在Docker上使用RabbitMQ的任何帮助都会很好。

Go – 使用xgo库与CGO交叉编译

我试图编译一个GO应用程序,它使用gokiri库。 我安装了docker并在本地编译了xgo交叉编译器。 当试图执行以下命令时: ./xgo mydomain.com/test/test-app 我得到以下错误: In file included from /usr/include/libxml2/libxml/parser.h:810:0, from /usr/include/libxml2/libxml/globals.h:18, from /usr/include/libxml2/libxml/threads.h:35, from /usr/include/libxml2/libxml/xmlmemory.h:218, from /usr/include/libxml2/libxml/tree.h:1307, from ../../github.com/moovweb/gokogiri/help/help.go:6: /usr/include/libxml2/libxml/encoding.h:28:19: fatal error: iconv.h: No such file or directory 我已经安装了xcode-tools帮助我编译我的机器(mac ox El Capitan)。 但是,我不能把它编译到其他环境。 任何帮助将不胜感激。 谢谢。 更新1: 我试图添加依赖关系,但得到了相同的结果: ./xgo –deps /usr/local/Cellar/libiconv/1.14/ mydomain.com/test/test-app 甚至在xgo的日志中提到这个库已经被caching了: Dependency already cached: /Users/macuser/.xgo-cache/1.14.