我看到谷歌云运行现在有jobs,这是惊人的!我想要实现的是有一个主容器服务于Web流量,还有一个作业容器,它可以基于来自主Web服务的一些业务逻辑被激活。我不确定如何实现的部分是在两个容器(服务和作业)之间共享代码。我假设我可以将整个Web服务构建为作业容器,并在其中包含一个Procfile:
Procfile
web: python3 app/scripts/main.py
现在,脚本模块可以从app提取任意代码。有没有更好的方法来做这两个Dockerfile,两个阶段的建设等?
app
mspsb9vt1#
如果 这 两 个 服务 要 共享 代码 , 它们 可能 应该 尽 可能 " 一起 " 部署 , 以便 代码 始终 保持 同步 ; Docker 图像 是 一 个 很 好 的 工具 , 因为 它 可以 通过 图像 哈希 对 工件 进行 完整 的 " 修订 " 。容器 可以 通过 多种 方式 检测 它 是 作为 * service * 还是 * job * 运行 , 然后 相应 地 调用 代码 ( 服务 器 将 侦听 并 提供 服务 , job 将 下拉 参数 并 开始 工作 ) 。以下 是 该 领域 的 一些 好 选择 , 并 进行 了 简要 的 利弊 比较 :
import os; os.environ["IS_JOB"]
os.environ
最 后 , 不管 你 怎么 做 , 最 好 使用 一 个 图像 。 让 我们 比较 一下 这 两 种 不同 Dockerfile 的 方法 :
这 两 个 映像 的 优势 相当 有限 :
所以 , 总 而言 之 , 如果 我 是 你 , 我 会 做 一 个 形象 ;但 答案 取决 于 您 的 应用 程序 、 您 的 需求 、 您 的 工作 流 等等 。
1条答案
按热度按时间mspsb9vt1#
如果 这 两 个 服务 要 共享 代码 , 它们 可能 应该 尽 可能 " 一起 " 部署 , 以便 代码 始终 保持 同步 ; Docker 图像 是 一 个 很 好 的 工具 , 因为 它 可以 通过 图像 哈希 对 工件 进行 完整 的 " 修订 " 。
容器 可以 通过 多种 方式 检测 它 是 作为 * service * 还是 * job * 运行 , 然后 相应 地 调用 代码 ( 服务 器 将 侦听 并 提供 服务 , job 将 下拉 参数 并 开始 工作 ) 。
以下 是 该 领域 的 一些 好 选择 , 并 进行 了 简要 的 利弊 比较 :
# # # 使用 一 个 映像 实现 的 方法
import os; os.environ["IS_JOB"]
等 ) 中 使用 简单 明 了os.environ
。# # # 与 多 个 图像 进行 比较
最 后 , 不管 你 怎么 做 , 最 好 使用 一 个 图像 。 让 我们 比较 一下 这 两 种 不同 Dockerfile 的 方法 :
这 两 个 映像 的 优势 相当 有限 :
所以 , 总 而言 之 , 如果 我 是 你 , 我 会 做 一 个 形象 ;但 答案 取决 于 您 的 应用 程序 、 您 的 需求 、 您 的 工作 流 等等 。