buildout 部署策略

3 投票
2 回答
761 浏览
提问于 2025-04-15 16:37

我正在把 zc.buildout 应用到一个已经存在的 django 项目上。我现在在考虑如何部署这个项目。请问我该如何在生产服务器上实现沙箱效果呢?

2 个回答

0

使用 包含站点包 选项:

 [buildout]
 include-site-packages = false

(我知道这个问题有点老,但在搜索结果中经常会看到。)

4

我不太明白你说的“沙盒效应”是什么意思。如果你指的是“隔离构建”,那是 buildout 的功能。虽然它可以使用每个用户的缓存目录,如果你在你的~/.buildout/default.cfg里设置了的话。如果你想在生产服务器上实现非常严格的沙盒环境,你需要把这个功能关掉。

部署通常意味着一些参数和你开发机器上的设置不同。你的网页应用的调试模式应该关闭;需要配置一个定时任务;端口号也不再是默认的 8080 了。

解决方案是:在你的 buildout 旁边放一个deploy.cfg文件。这个文件应该扩展你的buildout.cfg,只改变一些设置。其他的设置和你的buildout.cfg是一样的。大概是这样的:

[buildout]
  extends = buildout.cfg
  parts += 
      startup-cronjob

  [instance]
  # Some changes, like port number.
  http-address = 13080
  debug-mode = off
  verbose-security = off

  [startup-cronjob]
  # Example part that's new to the deploy.cfg, it wasn't in buildout.cfg.
  recipe = z3c.recipe.usercrontab
  times = @reboot
  command = ${buildout:directory}/bin/supervisord

差不多就是这样!

撰写回答