Bazel docker_image 复制额外的文件夹
Bazel docker_image copy extra folder
我目前正在为我的 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
like the 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
一个有用的模式链接在一起的各种目录。
我目前正在为我的 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
like the 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
一个有用的模式链接在一起的各种目录。