如何通过 Nomad 作业文件将文件复制到 Docker 容器
How to copy a file to a Docker container via Nomad job file
可能吗?
这是我的游牧工作文件
job "test-job" {
...
group "test-group" {
driver = "docker"
config {
image = "<image-name>"
}
...
}
}
我知道可以通过 docker 构建 Docker 文件将文件复制到 Docker 图像。
但我想避免从 'image-name' 图像显式创建新的 Docker 图像。
我也知道可以将文件复制到从 Docker 图像派生的 运行 Docker 容器中。
但是由于我使用 Nomad 推出 Docker 图像并填充容器,如果 Nomad 可以复制(通过即时创建新的 Docker 层并复制文件),这对我来说会很方便。
所以我想知道这是否可能以及如何实现?
我不确定我是否理解问题...
如果您想将 docker 图像放到 Nomad 代理上,那么 Nomad 可以 运行 它.. Nomad 会为您做这件事。
如果您在部署期间构建 docker 映像后尝试将文件添加到...,Nomad 有几个选项...有点。
您可以使用卷 (https://www.nomadproject.io/docs/drivers/docker.html#volumes) 并挂载一个包含文件的目录。
或者,您可以使用工件 (https://www.nomadproject.io/docs/job-specification/artifact.html) 并将其放在 /local 中(Nomad 为您创建此文件夹),我相信默认情况下它会暴露给 docker 个容器。
或者,另一种方法是在启动时让 Docker 容器去获取您需要的文件。很多人为此使用 consul-template,它现在内置于 Nomad (https://www.nomadproject.io/docs/job-specification/template.html)。
None 这些方法实际上是在创建一个新的 docker 图像层,但是,在部署时无法做到这一点,应该在构建时完成。
可能吗?
这是我的游牧工作文件
job "test-job" {
...
group "test-group" {
driver = "docker"
config {
image = "<image-name>"
}
...
}
}
我知道可以通过 docker 构建 Docker 文件将文件复制到 Docker 图像。 但我想避免从 'image-name' 图像显式创建新的 Docker 图像。
我也知道可以将文件复制到从 Docker 图像派生的 运行 Docker 容器中。 但是由于我使用 Nomad 推出 Docker 图像并填充容器,如果 Nomad 可以复制(通过即时创建新的 Docker 层并复制文件),这对我来说会很方便。
所以我想知道这是否可能以及如何实现?
我不确定我是否理解问题...
如果您想将 docker 图像放到 Nomad 代理上,那么 Nomad 可以 运行 它.. Nomad 会为您做这件事。
如果您在部署期间构建 docker 映像后尝试将文件添加到...,Nomad 有几个选项...有点。
您可以使用卷 (https://www.nomadproject.io/docs/drivers/docker.html#volumes) 并挂载一个包含文件的目录。
或者,您可以使用工件 (https://www.nomadproject.io/docs/job-specification/artifact.html) 并将其放在 /local 中(Nomad 为您创建此文件夹),我相信默认情况下它会暴露给 docker 个容器。
或者,另一种方法是在启动时让 Docker 容器去获取您需要的文件。很多人为此使用 consul-template,它现在内置于 Nomad (https://www.nomadproject.io/docs/job-specification/template.html)。
None 这些方法实际上是在创建一个新的 docker 图像层,但是,在部署时无法做到这一点,应该在构建时完成。