为Go项目在码头内建立码头

您所在的位置:网站首页 码头stack 为Go项目在码头内建立码头

为Go项目在码头内建立码头

2024-06-11 22:46| 来源: 网络整理| 查看: 265

我正试着为Go程序构建一个非常小的码头容器。为此,我希望使用一个Docker容器来构建Go程序,然后(在容器中)构建另一个Docker容器来运行程序。

下面是我的:

代码语言:javascript复制FROM google/golang WORKDIR /gopath/src/mycompany/mygoprog # Build the Contributors application RUN mkdir -p /gopath/src/mycompany/mygoprog ADD ./src/* /gopath/src/mycompany/mygoprog/ RUN CGO_ENABLED=0 GOOS=linux go build -a -tags rs -ldflags '-w' /gopath/src/mycompany/mygoprog/*.go RUN cp mygoprog /mygoprog CMD docker build -t foobar /gopath/src/mycompany/mygoprog

我的源目录有我的Go程序(琐碎的--编译/运行)和这个Dockerfile,用于最终产品:

代码语言:javascript复制FROM scratch ADD /mygoprog mygoprog ENTRYPOINT ["/mygoprog"] EXPOSE 9100

这些文件的组织方式如下:

代码语言:javascript复制/myproject Dockerfile /src Dockerfile mygoprog.go

要启动构建,我转到顶层目录并运行:

代码语言:javascript复制docker build .

这运行没有errors....and,没有最终的图像!输出如下:

代码语言:javascript复制bash-3.2$ docker build . Sending build context to Docker daemon 6.656 kB Sending build context to Docker daemon Step 0 : FROM google/golang ---> 3cc1d7ae0e9c Step 1 : WORKDIR /gopath/src/mycompany/mygoprog ---> Using cache ---> 49b9686dcbed Step 2 : RUN mkdir -p /gopath/src/mycompany/mygoprog ---> Using cache ---> 0d0139bb8cae Step 3 : ADD ./src/* /gopath/src/mycompany/mygoprog/ ---> 964ea5ca6afb Removing intermediate container e57719a417d5 Step 4 : RUN CGO_ENABLED=0 GOOS=linux go build -a -tags rs -ldflags '-w' /gopath/src/mycompany/mygoprog/*.go ---> Running in 608ad65db52c ---> 6e91f06b7654 Removing intermediate container 608ad65db52c Step 5 : RUN cp mygoprog /mygoprog ---> Running in 196af3db881b ---> 5e90e11ffc7d Removing intermediate container 196af3db881b Step 6 : CMD docker build -t foobar /gopath/src/mycompany/mygoprog ---> Running in 4794354abf2b ---> d91a908ee663 Removing intermediate container 4794354abf2b Successfully built d91a908ee663

我错过了什么,所以我得到了一个最后的,运行的码头与我的编译程序在里面?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3