0

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

1 回答 1

1

pkg_tarcontainer_image 文档参考一样使用。像这样的东西:

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

于 2021-06-10T19:15:33.850 回答