Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
Hanggi
V2EX  ›  云计算

除了 git,有没有其他办法同步一整个工作栈?

  •  
  •   Hanggi · May 28, 2018 · 3993 views
    This topic created in 2985 days ago, the information mentioned may be changed or developed.
    现在服务器上有一套网站系统,
    比如:有一套产品官网程序(可能是自己用框架写的)。官网还有一个开源的定制的博客系统与官网相连,可以互相跳转或者简单的数据交互。此外还有一个开源的论坛系统,用于用户讨论和问题反馈。这三个系统组成了一整个网站,而这三个系统可能用的数据库还不一样(开源程序默认数据库,比如博客可能用了 mysql,论坛用了 MongoDB,自己的网站用了 pg )。
    目前这个架构用 git 同步,但是有几个问题:
    一个是开源库本身可能又自带 git,如果用自己的 git 库覆盖会对以后的升级更新带来不便。而且经常需要对开源系统进行各种定制化的修改(如:UI,功能,交互什么的)。
    还有就是测试阶段偶尔要部署到其他地方。

    有什么好的方法同步多个系统吗?(或者说是这么架构不合理,或自己 git 用得不够精髓?)
    15 replies    2018-05-29 08:59:42 +08:00
    zeromake
        1
    zeromake  
       May 28, 2018
    用 `git submodule` 试试看?
    v2dead
        2
    v2dead  
       May 28, 2018
    docker 了解一下?
    Hanggi
        3
    Hanggi  
    OP
       May 28, 2018
    @zeromake git sub 有在用,但是不想破坏开源库本身的版本控制,以便经常更新。
    Hanggi
        4
    Hanggi  
    OP
       May 28, 2018
    @v2dead docker 给系统加了一层,不会对性能有影响吗
    814084764
        5
    814084764  
       May 28, 2018   ❤️ 1
    repo 了解一下?
    qiyuey
        6
    qiyuey  
       May 28, 2018 via Android
    @Hanggi 你别把 Docker 部署到云主机上就行
    EricXuu
        7
    EricXuu  
       May 28, 2018 via Android
    @Hanggi git submoudle 不就是为了保持子模块的提交独立?
    Hanggi
        8
    Hanggi  
    OP
       May 28, 2018
    @EricXuu 这个确实是一个问题。我用的那个开源库更新程序版本的时候要求在版本库中抓取最新版本分支,检录,合并, 或者切换分支的方法更新版本。这样我就必须保留他自身的 git 库,而且我不知道它会替换掉我哪些文件。有办法让同一个目录下共存两种库吗?
    wellsc
        9
    wellsc  
       May 28, 2018 via iPhone
    Docker compose 就够了
    lightening
        10
    lightening  
       May 28, 2018
    @Hanggi 如果你是 Linux 系统,不会,因为 Docker 本质其实只是个 chroot 环境而已。Windows 和 Mac 上是用虚拟机的 Linux 实现的,会。
    Hanggi
        11
    Hanggi  
    OP
       May 28, 2018
    @lightening 服务器当然是 linux,刚才看了几个测评说对性能损耗不大,可以忽略不计,但是对网络 IO 和硬盘 IO 有一定性能影响。看来数据库单独备份,软件打包是可行的。
    lightening
        12
    lightening  
       May 28, 2018 via iPhone
    @Hanggi 数据库本来就不建议放 docker。容易误删。另外 docker container 一般是做成 stateless 的,方便按需删减。
    Rheinmetal
        13
    Rheinmetal  
       May 28, 2018 via Android
    整个环境 docker 好用
    要是用 git 解决
    git 仓库可以不叫 .git
    改一个环境变量 就行
    breezeFP
        14
    breezeFP  
       May 28, 2018
    一楼的方法可以试试
    owt5008137
        15
    owt5008137  
       May 29, 2018 via Android   ❤️ 1
    git submodule 和 git subtree
    你要对开源仓库做修改正确的方法是 fork 一个分支然后在你自己 fork 的分支上改。每次更新的时候 fetch 源仓库然后 rebase
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4890 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:42 · PVG 17:42 · LAX 02:42 · JFK 05:42
    ♥ Do have faith in what you're doing.