【发布时间】:2016-01-24 19:54:11
【问题描述】:
我将 Django 与 Gunicorn 守护程序和 Nginx 一起用于代理和静态文件。我有一个非常简单的 Fabric 脚本来“自动化”一些操作:
- 我们在本地计算机上处理 virtualenv
- 我们只将应用程序推送到我们的 GitHub 存储库
- 我们通过 ssh 连接到服务器,并运行 GitHub 存储库中的结构脚本
- 它从 GitHub 拉取,如果需要合并,重新启动 Nginx 和 Gunicorn
这个已经有问题了,比如第一次部署,我需要手动从GitHub克隆。
现在,我们正处于将应用程序发送给客户的阶段,以便他们可以托管自己的服务器(我们可能需要在不久的将来进行扩展)。他们需要 Docker 容器部署在自己的服务器上。我将通过 ssh 连接到他们的服务器以更新我们应用程序的部署。
但是,我很难弄清楚实现自动化的最佳方法是什么,即每次我们使用 Fabric 发布新版本时我需要采取的操作顺序。
【问题讨论】:
-
至少有一些使用烧瓶制作 docker 容器的教程。您应该创建一个
requirements.txt文件列出所有依赖项并将其包含在版本控制中。您不需要使用 Fabric 进行太多自动化操作,只需从 git 下载 tarball,解压缩,然后运行docker build,它将在 docker 容器中安装 nginx 和您的依赖项。 github.com/atupal/dockerfile.flask-uwsgi-nginx -
您是否在步骤 3 中手动
sshing?还是自动化的? -
@jumbopap 感谢您的评论,我的要求已经在
requirements.txt文件中。我的问题更多是关于如何自动化这个,因为我不想手动构建一个 docker 容器。我猜Fabric变得多余了,因为我可以从我的 git 存储库中提取并在Dockerfile中安装需求。 -
@dm03514 我手动
sshing。但关于我之前的评论,我想知道如何实现自动化。
标签: python django docker fabric