登录
首页 >  Golang >  Go问答

在Bazel docker_image 中添加附加文件夹的复制

来源:stackoverflow

时间:2024-02-16 15:51:24 350浏览 收藏

哈喽!今天心血来潮给大家带来了《在Bazel docker_image 中添加附加文件夹的复制》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我目前正在为我的 golang 应用程序使用 bazel。

container_image(
     name = "my-golang-app",
     base = "@ubuntu_base//image",
     cmd = ["/bin/my-golang-app"],
     directory = "/bin/",
     files = [":my-golang-app"],
     tags = [
         "manual",
         version,
     ],
     visibility = ["//visibility:public"],
 )

除了 my-golang-app 文件夹外,在构建此映像时,我需要复制另一个名为 my-new-folder 的文件夹及其中的所有内容。

如何使用 bazel 做到这一点?我似乎无法在 bazel 文档中找到解决方案。

dockerfile {
             run 'mkdir -p /usr/local/bin'
             // add the lines below
             add {
                 from 'docker/my-new-folder/'
                 into '/'
             }

正确答案


container_image docs 参考一样使用 pkg_tar。像这样的事情:

pkg_tar(
    name = "my-files",
    srcs = glob(["my-new-folder/**"]),
    strip_prefix = ".",
)

container_image(
    name = "my-golang-app",
    files = [":my-golang-app"],
    ,
    tars = [":my-files"],
)

如果您想要的不仅仅是整个目录,pkg_tar 有各种选项来控制文件的最终位置。对于更复杂的安排,我发现通过 deps 链接在一起的各个目录的多个 pkg_tar 规则是一个有用的模式。

今天关于《在Bazel docker_image 中添加附加文件夹的复制》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

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