微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bazel docker_image 复制额外的文件夹

如何解决Bazel docker_image 复制额外的文件夹

我目前正在为我的 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 '/'
             }

解决方法

pkg_tar 引用一样使用 container_image docs。像这样:

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

container_image(
    name = "my-golang-app",files = [":my-golang-app"],<everything else you already have>,tars = [":my-files"],)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。