Tag:

Docker:从一个私人的GitHub仓库获取

我试图运行一个容器,将暴露一个包,我有一个私人的GitHub回购一个golang服务。 由于我正在使用GCE,我的初始图像是谷歌/ debian:wheezy。 安装所有必需的依赖和工具后,我正在运行 RUN go get github.com/<my_org>/<my_package> 该包是私人回购。 我已经添加了我的GitHub SSH密钥,以允许从私人回购克隆到泊坞窗文件: ADD priv/id_rsa /root/.ssh/id_rsa ADD priv/id_rsa.pub /root/.ssh/id_rsa.pub 不过,在尝试克隆repo时,在获取过程中出现错误: # cd .; git clone https://github.com/<my_org>/<my_package> /gopath/src/github.com/<my_org>/<my_package> Cloning into '/gopath/src/github.com/<my_org>/<my_package>'… fatal: could not read Username for 'https://github.com': No such device or address package github.com/<my_org>/<my_package>: exit status 128 为了debugging这个问题,从Dockerfile中运行: RUN ssh-keyscan -t rsa github.com 2>&1 >> /root/.ssh/known_hosts 这告诉我有一些问题。 […]

Docker的echo环境variables

我试图写一个小docker文件,设置一个用户,只是回声当前用户作为一个小例子certificate自己它正在工作。 我已经尝试了一些变体,在文档中找不到太多的帮助。 FROM ubuntu USER daemon # ENTRYPOINT ["echo", "$USER"] # just gives "$USER" # ENTRYPOINT ["echo", "-e", "${USER}"] # just gives "$USER" # ENTRYPOINT echo $USER # gives empty string # ENTRYPOINT ["/bin/echo", "$USER"] # just gives "$USER" 我正在运行docker build . 在dockerfile上,然后运行docker docker run <image-id>并获取结果 预期的结果是daemon ,或者没有USER daemon行,我期望root 。 可能是一个非常简单的答案。

golang docker私人github存储库

我正在尝试创build一个从私人和公共github存储库中提取的docker镜像。 我使用的dockerfile是 FROM golang:1.4.2-onbuild ENV GOPATH /go ENV PATH /go/bin:$PATH EXPOSE 3000 RUN mkdir -p /go/src/github.com/eddi/api RUN git clone https://<access token>@github.com/owner/repo.git /go/src/github.com/owner/repo WORKDIR /go/src/github.com/eddi/api RUN go get github.com/gin-gonic/gin RUN go run server.go 但是当我运行docker构build。 我得到以下错误: cd。 git clone https://github.com/gin-gonic/gin/go/src/github.com/gin-gonic/gin 克隆到“/go/src/github.com/gin-gonic/gin”… 致命:无法访问' https://github.com/gin-gonic/gin/ ':无法parsinghost:github.com 为私人和公共存储库。 如何让我的dockerfile在导入库方面performance良好?

Golang Microservices无法使用Docker for Mac进行通信

我想获得两个容器,每个运行不同的golang服务。 这两个服务都是用net/http包build立的。 我有一个API前端作为一个和身份validation服务后端。 这是我的撰写文件: version: "2" services: staticfiles: build: ./files volumes: – /public – /views api: build: ./api environment: – PORT=8080 – BASE_URL=https://example.org – AUTH_HOST=auth – AUTH_PORT=8080 – VIEW_DIR=/views – PUBLIC_DIR=/public ports: – "80:8080" volumes_from: – staticfiles:ro links: – auth depends_on: – staticfiles db: build: ./postgres environment: – POSTGRES_USER=inheritor – POSTGRES_DB=inheritor auth: build: ./auth expose: […]

使用golang exec执行docker命令失败

我正在使用cmd.go(见下文)执行docker命令,但是失败。 我执行以下步骤来执行并获得以下错误。 go build sudo ./cmd 输出: docker run -v ~/exp/a.out:/a.out ubuntu:14.04 /a.out -m 10m 2014/10/16 14:32:12 exit status 1 另一方面直接运行 sudo docker run -v ~/exp/a.out:/a.out ubuntu:14.04 /a.out -m 10m 导致a.out的正确输出。 Hello World 这是cmd.go的代码。 我怎样才能使它工作? 谢谢! package main import ( "fmt" "log" "os/exec" "strings" ) func ExampleCmd_Output() { //out, err := exec.Command("date", "–version").Output() // This […]

为什么CreateContainerOptions的卷需要一个map struct {}?

我一直在使用由fsouza创build的伟大的go-dockerclient] ,但我很困惑为什么docker.CreateContainerOptions.Volumes是一个string结构的映射? 文档不解释这是为什么,但我想像你只需要map [string] =>string映射主机卷到容器卷? 或者将值保留为空,以表示主机卷将安装在容器内的相同path上。 我通过Github上的一些开源代码来看看创build容器的人,但是我刚刚看到很多人只用一个string和一个空的结构体来装入Volume的例子。 我也是新手,所以我可能会错过一些完全明显的东西。

分布式系统Docker容器上的NSQ拓扑模式

是否可以使用Docker复制“ Topology Patterns ”最后一个示例中描述的“NSQ实时分布式消息传递平台”? 有人有docker文件或图像的例子吗?

发送信号到Docker中的Golang应用程序

我正在尝试运行在docker容器内用golang编写的服务器。 例如: package main import "net/http" func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello")) }) http.ListenAndServe(":3000", nil) } 如果我在本地机器上运行这个代码,我可以用Ctrl-C发送一个SIGINT ,它将closures应用程序。 当我在Docker容器中运行它时,我似乎无法用Ctrl-C来杀死它。 # Dockerfile FROM ubuntu:14.04 RUN apt-get update && apt-get -y upgrade RUN apt-get install -y golang ENV GOPATH /go COPY . /go/src/github.com/ehaydenr/simple_server RUN cd /go/src/github.com/ehaydenr/simple_server && go install CMD /go/bin/simple_server 然后我开始使用docker发送信号给容器。 docker […]

Docker的默认包含哪些内容?

有一个选项, FROM scratch使用它看起来像一个非常有吸引力的build设我的Go容器的方式。 我的问题是它仍然有本地运行二进制文件,我需要添加任何东西,以便可靠地运行Go二进制文件? 编译Go二进制似乎运行至less在我的笔记本电脑上。 我的目标是保持图像的大小为了安全和基于pipe理的原因。 在最佳情况下,我的容器将不能在构build阶段之外执行二进制文件或shell命令。

Dockerhub自动构build与多个私人回购

有一种方法可以在自动化dockerhub构build过程中连接到多个私有git仓库吗? 我们正在构buildgolang应用程序,并需要“去获得”其他私人回购作为我们构build的一部分,目前他们因为docker工人无法连接到他们而失败,只有目标私人回购。 主要的回购是好的,因为部署密钥通过Dockerhub安装,但任何后续的私人回购导入失败。 我能看到的一个方法就是在本地构build镜像,“docker工人”将其拖放到dockerhub上,然后在部署方面拉下来,这样做会影响dockerhub和自动化构build系统的function。 另一种是把ssh键烧成基本的图像,这不是一个好主意。 有没有人有一个解决scheme,这不涉及到本地烧图像或build设SSH密钥? 非常感谢。