V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zyqzyq08
V2EX  ›  Python

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

  •  
  •   zyqzyq08 · 2019-05-11 14:01:40 +08:00 via Android · 3009 次点击
    这是一个创建于 1783 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    13 条回复    2019-05-13 11:13:37 +08:00
    yuhr123
        1
    yuhr123  
       2019-05-11 14:11:57 +08:00
    把 git 也建在内网
    zyqzyq08
        2
    zyqzyq08  
    OP
       2019-05-11 14:13:52 +08:00 via Android
    @yuhr123 emmm 要部署到多个地方
    qiukun
        3
    qiukun  
       2019-05-11 15:59:33 +08:00 via Android
    写成 sh
    tomczhen
        4
    tomczhen  
       2019-05-11 16:21:15 +08:00
    自己打成发行版支持的安装包格式,也可以参考一些跨发行版方案,比如 appimage 之类的。
    ksupertu
        5
    ksupertu  
       2019-05-11 16:58:43 +08:00 via iPhone
    打包 docker image 导来导去
    zyqzyq08
        6
    zyqzyq08  
    OP
       2019-05-11 18:01:54 +08:00
    @qiukun 我目前是这么干的。。sh 还是很爽的。一个打包一个安装
    zyqzyq08
        7
    zyqzyq08  
    OP
       2019-05-11 18:02:47 +08:00
    @tomczhen 感谢,这个感觉很棒。我去研究下
    zyqzyq08
        8
    zyqzyq08  
    OP
       2019-05-11 18:03:26 +08:00
    @ksupertu 这个是最佳备选方案。。表示有些机子都不给装 docker
    tomczhen
        9
    tomczhen  
       2019-05-11 18:13:18 +08:00
    @zyqzyq08 snap 可能更适合,做好趟坑的准备吧。。
    zyqzyq08
        10
    zyqzyq08  
    OP
       2019-05-11 18:41:25 +08:00
    @tomczhen emm。。。看了下似乎都是很有趣。。但是有点麻烦的感觉。
    xpresslink
        11
    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 是重启服务的脚本。
    julyclyde
        13
    julyclyde  
       2019-05-13 11:13:37 +08:00
    推和拉的选择,很大程度上受限于网络通信
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5332 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:15 · PVG 17:15 · LAX 02:15 · JFK 05:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.