V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chaegumi
V2EX  ›  程序员

请教线上项目自动化 git 怎么实施?

  •  
  •   chaegumi ·
    chaegumi · 2016-06-27 14:14:44 +08:00 · 4065 次点击
    这是一个创建于 3098 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有两台服务器,

    服务器 1 :网站程序 站点目录

    服务器 2 : git 服务器

    我现在是本地机开发

    想要的效果就是自动 git 备份整个服务器 1 的站点目录

    我现在的想法是:本地机开发完,把程序更新到服务器 1 ,那我能用脚本去实现自动 git 备份服务器 1 到服务器 2 的版本库去吗?

    想法对不对?还是不是这样做的。是别的方式
    28 条回复    2016-06-28 08:49:49 +08:00
    clino
        1
    clino  
       2016-06-27 14:22:20 +08:00
    不应该是开发完 push 到 git 服务器,然后生产环境从 git 服务器更新到最新版本吗?
    bazingaterry
        2
    bazingaterry  
       2016-06-27 14:23:25 +08:00
    难道不应该是把 commit 推到 git 服务器,然后利用 git hook 或者持续部署之类的工具实现线上自动更新?
    chaegumi
        3
    chaegumi  
    OP
       2016-06-27 14:26:46 +08:00
    @clino
    @bazingaterry 所以我变成是反着来了?我也搜索到过你们这种说法
    chaegumi
        4
    chaegumi  
    OP
       2016-06-27 14:27:21 +08:00
    不对啊,那生产环境下产生的 比如 用户图片上传这些怎么搞
    Citrus
        5
    Citrus  
       2016-06-27 14:27:59 +08:00
    @chaegumi 你的想法确实是反的,但是没人这么用。大家都是用 Git Hook 的方式往生产同步,而不是反过来。
    chaegumi
        6
    chaegumi  
    OP
       2016-06-27 14:28:16 +08:00
    我其实主要是想要把用户的上传的图片什么的类似的一些动态数据 git 起来
    Citrus
        7
    Citrus  
       2016-06-27 14:28:48 +08:00
    @chaegumi 用户上传的图片就不应该传到 Git 上。 Git 是用来管理 代码 版本 的工具,而不是给你备份数据用的工具。
    chaegumi
        8
    chaegumi  
    OP
       2016-06-27 14:29:57 +08:00
    @Citrus 那这些数据用什么方式来备份, rsync ?那如果用户误删除的话,想找回来就找不回来了呀
    chaegumi
        9
    chaegumi  
    OP
       2016-06-27 14:30:50 +08:00
    @Citrus 或者用户把原来 图片删除,传了一个一模一样名字的图片,等于丢失了。
    jixiangqd
        10
    jixiangqd  
       2016-06-27 14:31:42 +08:00
    jenkins
    icybee
        11
    icybee  
       2016-06-27 14:34:18 +08:00
    楼上说得对, jenkins ,我记得有 docker 版本
    kslr
        12
    kslr  
       2016-06-27 14:40:34 +08:00
    @chaegumi 数据为什么要和代码混杂到一起
    clino
        13
    clino  
       2016-06-27 14:42:10 +08:00
    "那生产环境下产生的 比如 用户图片上传这些怎么搞"
    感觉你要的是备份
    你应该把代码或者构建产物对于生产环境的自动化部署和生产环境的数据备份分开考虑
    难不成你要把应用产生的数据都和代码放在一起做版本管理?
    XianZaiZhuCe
        14
    XianZaiZhuCe  
       2016-06-27 14:45:44 +08:00
    瞎用 git 。。。
    chaegumi
        15
    chaegumi  
    OP
       2016-06-27 14:53:54 +08:00
    @clino 是的,这部分应该也是可以 git 备份的吧
    vnady
        16
    vnady  
       2016-06-27 14:59:35 +08:00
    jenkins
    sxul07
        17
    sxul07  
       2016-06-27 15:01:43 +08:00
    Git 是代码版本管理。。备份用云存储…然后你们这个逻辑明显有问题 竟然直接把用户上传的文件保存在硬盘上?
    sexoutsex2011
        18
    sexoutsex2011  
       2016-06-27 15:16:00 +08:00
    最近用 walle ,简单点,你试试看?
    https://www.v2ex.com/t/216073
    HavenShen
        19
    HavenShen  
       2016-06-27 15:22:12 +08:00
    TangMonk
        20
    TangMonk  
       2016-06-27 15:23:35 +08:00
    静态数据应该存放在七牛,又拍云,阿里云 OSS 这些地方
    clino
        21
    clino  
       2016-06-27 15:35:42 +08:00
    @chaegumi 可以用 git 备份,但我的问题是备份的 git 难道和源代码是同一个吗?
    alexsunxl
        22
    alexsunxl  
       2016-06-27 15:38:22 +08:00
    关于图片或者其他的用户产生的内容。你应该放到 CDN 或者别的文件夹(然后配置一下路径)。
    代码仓库一定是要纯净,无状态的。
    无状态简单理解就是和数据分离(上传图片也算数据),你这个服务器崩掉了,仍然能很快的 clone 一份代码,然后配置一下就能恢复
    ytf
        23
    ytf  
       2016-06-27 16:21:03 +08:00
    用户删除 你可以软删除 不用物理删除呀
    unionx
        24
    unionx  
       2016-06-27 16:24:18 +08:00
    基于 Jenkins 搞一套 build pipeline
    ppwangs
        25
    ppwangs  
       2016-06-27 16:39:34 +08:00
    用户误删是用户的事,你提醒到位就够了,和你无关。。
    marvinwilliam
        26
    marvinwilliam  
       2016-06-27 22:35:18 +08:00
    你说的应该是 webhook
    msg7086
        27
    msg7086  
       2016-06-27 22:51:47 +08:00
    @TangMonk 那七牛的静态数据是不是要放到又拍去了。
    TangMonk
        28
    TangMonk  
       2016-06-28 08:49:49 +08:00 via Android
    @msg7086 没明白。。什么意思
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5349 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:38 · PVG 15:38 · LAX 23:38 · JFK 02:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.