V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rizon
V2EX  ›  程序员

自动化构建部署 github 仓库到国内的服务器

  •  
  •   rizon ·
    othorizon · Feb 19, 2024 · 3364 views
    This topic created in 799 days ago, the information mentioned may be changed or developed.

    背景说明

    最近在部署 nodejs 的项目时遇到一个问题,这个项目本身规模较小,没有采用标准的 CICD 流程,也没有 K8S 或者 docker 的容器化,因此只是在一个云服务器上简单的执行一下启动命令。 原初,就是简单的登录服务器,从 github 仓库拉取代码,然后执行构建,最后启动服务。 但是后来发现有两个问题: 一是 github 连接经常不稳定,当然这个可以通过代理地址解决。第二个问题是这个项目在执行 node 的构建命令时候 cpu 占用非常高,而这个某云厂商的边角料轻量云服务器,cpu 占用一高之后居然无响应了,无法登录终端,停止不了构建进程。只能重启机器。 基于以上问题,我决定把构建流程从服务器中抽离出来。这件事最简单的办法就是本地构建,然后把构建后的文件上传到服务器。不过我因为一些原因不想要本地做构建,于是便有了这个方案。

    核心概述

    详细内容可以查看公众号原文(公众号奕象派): https://mp.weixin.qq.com/s/qMg_OEBNghalFq2wjAzkTw
    这里简单概述核心内容,因为基本上看这几句话知道什么意思也就足够了。

    1. 使用 coding.net 的服务
    2. 关联 GitHub 仓库,这样就不用迁移仓库到 coding 了,很良心
    3. 配置构建计划,计划里拉取代码到运行的容器环境里,然后执行构建命令就行了。coding 的配置功能很强大,还免费
    4. 配置 ssh 密钥,用于将构建后的代码上传到目标服务器。ssh 密钥是可以在凭证管理页面安全管理的,不必要明文暴露到脚本中。

    核心就是这么几个步骤,其中有一些我在操作时的踩的坑在原文里描述了。

    欢迎关注

    我也是刚决定并开始做公众号,我打算将我平常工作中的一些技巧性的知识,开发中踩过的各种坑,以及拥有的行业经验(全栈开发、产品设计、以及现在正在做的 AI 相关领域的知识)一点点的分享出来。同时也是一个自我总结。 总之,欢迎关注公众号以及加入交流群(在公众号菜单里直接加群)。

    10 replies    2024-02-19 15:56:43 +08:00
    mohumohu
        1
    mohumohu  
       Feb 19, 2024
    GitHub Actions 不好用吗
    rizon
        2
    rizon  
    OP
       Feb 19, 2024
    @mohumohu #1 你说的很对,如果 github 的 actions 玩的转,用 actions 就很好了。如果对 actions 的流程、变量、容器的这些配置有学习成本的话,可以考虑国内的服务。
    Trim21
        3
    Trim21  
       Feb 19, 2024 via Android
    印象里每次在 v2 看到 coding 都是幺蛾子,难得有正面的东西😂
    28Sv0ngQfIE7Yloe
        4
    28Sv0ngQfIE7Yloe  
       Feb 19, 2024
    coding 风评不是很好,我选云厂商的 devOPS
    Jack927
        5
    Jack927  
       Feb 19, 2024
    @Trim21 @Morii #3 #4 好奇 coding 发生了啥,想了解下,有关键词吗
    vacuitym
        6
    vacuitym  
       Feb 19, 2024
    一直用着 action 部署 java 和 vue
    blackmirror
        7
    blackmirror  
       Feb 19, 2024
    actions 比那些好用多了
    ZeroAsh
        8
    ZeroAsh  
       Feb 19, 2024
    其实可以自己搭一个 github action 的 runner ,把构建扔给 github 的 runner ,image push 完成之后,然后部署用自己的 runner 跑就能操作集群了
    dayeye2006199
        9
    dayeye2006199  
       Feb 19, 2024
    你倒过来弄就行了,server 的 key actions 上面存一份,构建完了直接在 actions 里面上传 server 就得了
    hongzx
        10
    hongzx  
       Feb 19, 2024
    我是 gitea+drone ,docker 部署
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5817 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 06:07 · PVG 14:07 · LAX 23:07 · JFK 02:07
    ♥ Do have faith in what you're doing.