登录
首页 >  Golang >  Go问答

管理多个 Dockerfile 的库共享

来源:stackoverflow

时间:2024-03-04 23:54:26 363浏览 收藏

一分耕耘,一分收获!既然都打开这篇《管理多个 Dockerfile 的库共享》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我有以下文件夹结构:

/go/src/[my-private-repo]
  /my-libraries
  go.mod
  go.sum
  main.go
  dockerfile

太棒了,它有效。

但是我想添加另一个 main2.go 和另一个 dockerfile2 来拥有这个结构。在我看来:

/go/src/[my-private-repo]
  /my-libraries
  go.mod
  go.sum
  /build1
    main.go
    dockerfile
  /build2
    main.go
    dockerfile

但是,docker 不允许这样做。

我当前的 dockerfile 复制本地文件系统的内容来构建映像。它不会获取 [my-private-repo]。

FROM golang:1.15 as builder

WORKDIR /go/src/[my-private-repo]
ADD . .
# Build the application
RUN go build -o /build/main .
# ...

我确实认为我错过了一些明显的步骤。

有关如何使用相同库的不同 main.go 和 dockerfile 的任何建议。 我必须这样做


解决方案


我最终做了以下事情:

/go/src/[my-private-repo]
  /my-libraries
  go.mod
  go.sum
  build1.dockerfile
  /build1
    main.go
  build2.dockerfile
  /build2
    main.go

build1.dockerfile的内容

from golang:1.15 as builder

workdir /go/src/[my-private-repo]
add . .
workdir /go/src/[my-private-repo]/build1
# build the application
run go build -o /build/main .
# ...

构建第一个图像 docker 构建 . -t build1 -f build1.dockerfile

build2.dockerfile的内容

FROM golang:1.15 as builder

WORKDIR /go/src/[my-private-repo]
ADD . .
WORKDIR /go/src/[my-private-repo]/build2
# Build the application
RUN go build -o /build/main .
# ...

构建第二个图像 docker 构建 . -t build2 -f build2.dockerfile

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《管理多个 Dockerfile 的库共享》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>