求助, django 项目离线部署以后如何优雅的更新

2019-05-11 14:01:40 +08:00
 zyqzyq08

代码跑局域网内,没有外网~无法从 git 拉代码,除了删了然后复制有啥比较方便的操作?谢谢~

3048 次点击
所在节点    Python
13 条回复
yuhr123
2019-05-11 14:11:57 +08:00
把 git 也建在内网
zyqzyq08
2019-05-11 14:13:52 +08:00
@yuhr123 emmm 要部署到多个地方
qiukun
2019-05-11 15:59:33 +08:00
写成 sh
tomczhen
2019-05-11 16:21:15 +08:00
自己打成发行版支持的安装包格式,也可以参考一些跨发行版方案,比如 appimage 之类的。
ksupertu
2019-05-11 16:58:43 +08:00
打包 docker image 导来导去
zyqzyq08
2019-05-11 18:01:54 +08:00
@qiukun 我目前是这么干的。。sh 还是很爽的。一个打包一个安装
zyqzyq08
2019-05-11 18:02:47 +08:00
@tomczhen 感谢,这个感觉很棒。我去研究下
zyqzyq08
2019-05-11 18:03:26 +08:00
@ksupertu 这个是最佳备选方案。。表示有些机子都不给装 docker
tomczhen
2019-05-11 18:13:18 +08:00
@zyqzyq08 snap 可能更适合,做好趟坑的准备吧。。
zyqzyq08
2019-05-11 18:41:25 +08:00
@tomczhen emm。。。看了下似乎都是很有趣。。但是有点麻烦的感觉。
xpresslink
2019-05-11 22:07:15 +08:00
我以前做过类似的项目,服务器和开发机都是在同一个局域网内。
直接在服务器上安装 Git 服务,然后初始化一个空的 git 远程仓库。
在开发机上把代码直接 push 到服务器远程仓库。
在远程仓库的写个 post-receive 钩子脚本,用来在 push 新代码后自动触发事件,自动更新代码和重启服务。

钩子脚本很简单
# =======================================
#!/bin/bash
# File_Name=post-receive
# git 用来 push 后部署代码到网站的钩子
# put this file under git-repo/project.git/hooks/ and chmod +x
webdir='/webapps/djangosite'
gitdir='/home/gitrepo/djangosite.git'
git --work-tree=$webdir --git-dir=$gitdir checkout -f
chmod +x $webdir/*.sh
$webdir/run.sh restart
# ========================================

run.sh 是重启服务的脚本。
xpresslink
2019-05-11 22:09:03 +08:00
julyclyde
2019-05-13 11:13:37 +08:00
推和拉的选择,很大程度上受限于网络通信

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/563129

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX