V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PungentSauce
V2EX  ›  程序员

大家往自己服务器部署/启动的时候都是通过什么方式,有什么比较好用的开源工具么

  •  2
     
  •   PungentSauce · 15 小时 57 分钟前 · 2381 次点击

    最早的时候部署 php 可以用 deployer 。 现在用的 go ,打包什么的可以用.goreleaser 解决。但是上传部署不知道有什么方便的工具么。最好工具可以本地操作,或者部署在服务器,上传后自动执行也可以。不知道有什么开园工具么。

    第 1 条附言  ·  9 小时 49 分钟前
    我这边服务器目前是有装 supervisor 和 1panel 。我目前的流程是,本地 go build 之后甩到服务器上,然后面板操作重起 supervisor 指定服务。但是我希望可以简化这个流程。我期望的是 我执行某个命令后,可以编译,完成上传,和重启这几个操作。如果是页面上传的话,那么就是上传完成和重启,这两个完成就可以,本地的话至少要可以做到上传和重启。因为之前用 php 有 deployer ,但是目前没有找到比较合适的其他软件。deployer 本身还可以回滚,软链接,多版本,这个功能我还是挺喜欢的。不知道其他的有没有。 打 docker ,然后服务端拉取这个方案我不是很想使用。因为本身就是一个 go 单体应用,没有什么特殊的依赖,上传上去,最简单的话,nohup xxx serve & 就可以运行,所以用 docker 拉取的话,感觉还是有点重,并且服务器还是比较低配的 2c2g ,一些基础服务装一下还好。go 的单体服务不是很想使用 docker 。这个方向的话,不清楚大家有什么比较好的方案
    36 条回复    2024-11-29 20:57:09 +08:00
    Jinnrry
        1
    Jinnrry  
       15 小时 37 分钟前
    无脑 docker
    rxmt
        2
    rxmt  
       15 小时 33 分钟前
    无脑 docker 或 compose +1
    qczrzl
        3
    qczrzl  
       15 小时 32 分钟前
    docker-compose
    qloog
        4
    qloog  
       15 小时 28 分钟前
    简单点就是 scp + systermd(一般服务器上都有), scp 用于部署二进制,systermd 用于部署后自动启动服务,下面是基于此原理的一些库

    --------

    https://github.com/dreamans/syncd 可以了解下 是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率. (用到了 scp )


    或者

    https://github.com/pioz/god 能让你无需繁琐的 SSH 登录和手动配置,即可在远程服务器上部署、控制 Go 编写的守护进程 (依赖 systermd )
    qloog
        5
    qloog  
       15 小时 26 分钟前
    @qloog 推荐 god , 更简单些,也支持同时管理多个服务
    usboy
        6
    usboy  
       15 小时 26 分钟前
    docker-compose
    k3s
    flytsuki
        7
    flytsuki  
       15 小时 24 分钟前
    docker-compose, pm2, supervisor
    lpe234
        8
    lpe234  
       15 小时 24 分钟前
    git pull && docker compose up -d --build
    esee
        9
    esee  
       15 小时 21 分钟前
    自己写脚本加 PM2 守护,简单明了
    GeekGao
        10
    GeekGao  
       15 小时 19 分钟前
    让 AI 帮你生成一份 docker compose 配置。
    ElmerZhang
        11
    ElmerZhang  
       15 小时 0 分钟前
    代码 -> gitlab -> gitlab-ci -> docker build -> aliyun registry -> k8s/docker-compose
    seers
        12
    seers  
       14 小时 58 分钟前 via Android
    cicd 钩子,自动打包自动发布,生活太美好了
    fuis
        13
    fuis  
       14 小时 56 分钟前   ❤️ 1
    用 docker-compose 和 portainer 部署。遇到没有 docker-compose.yml 的项目,用 composerize 从 docker run 里生成;遇到忘记 docker run 的情况,用 runlike 从运行中的容器生成命令行。
    zhengxiaowai
        14
    zhengxiaowai  
       14 小时 48 分钟前
    我感觉都要暴露年龄了,,,supervisor 。。
    ptaooo
        15
    ptaooo  
       14 小时 42 分钟前
    目前用的 1panel ,纯懒
    nonewind
        16
    nonewind  
       14 小时 25 分钟前
    supervisor + 1
    oneisall8955
        17
    oneisall8955  
       13 小时 10 分钟前
    portainer stack
    chingyat
        18
    chingyat  
       12 小时 46 分钟前
    Podman
    ysicing
        19
    ysicing  
       12 小时 40 分钟前
    k3s 或者 docker
    julyclyde
        20
    julyclyde  
       12 小时 39 分钟前
    首先否决掉 supervisorD 、pm2 之类的,他们自己的存活性没保证
    然后否决掉 nohup——因为 interactive shell 对环境变量的污染会带来隐式外部依赖,nohup.out 无法 rotate 、login session 无法退出等问题

    正确的选择是 systemd 或者容器
    ShineyWang
        21
    ShineyWang  
       12 小时 38 分钟前
    不是开源的,商业软件
    Octopus
    Yadomin
        22
    Yadomin  
       12 小时 37 分钟前
    k3s 或者 systemd
    IDAEngine
        23
    IDAEngine  
       12 小时 26 分钟前
    CapRover
    IDAEngine
        24
    IDAEngine  
       12 小时 18 分钟前
    主要是用 CapRover ,和 Heroku 比较类似,还挺好用的,另外就是 minikube
    mohuani
        25
    mohuani  
       10 小时 48 分钟前
    @zhengxiaowai 我还在用。。。。
    PungentSauce
        26
    PungentSauce  
    OP
       9 小时 59 分钟前
    @Jinnrry 是本地打 docker ,然后推送到 docker hub ,然后在服务器拉取么。
    Jinnrry
        27
    Jinnrry  
       9 小时 54 分钟前
    @PungentSauce 我的方案是代码 push 自建的 gitea ,然后 gitea action 自动编译 docker image ,编译完成后 scp docker image 到服务器,然后 docker 加载镜像运行。

    最早的时候我是编译完后 push 到 docker hub ,然后服务器上面拉镜像,结果发现国内 push docker hub 很慢,而且很不稳定

    然后我又把 docker hub 改成了阿里云的 docker 镜像中心,用了几年,后面发现免费的阿里镜像中心也不稳定,偶尔会抽风拉不下来,抽风的时候毫无办法,毕竟没付费

    最后就改成了直接 scp 镜像过去
    PungentSauce
        28
    PungentSauce  
    OP
       9 小时 44 分钟前
    @qloog 可以的,这个我看和 deployer 比较像,不过我不希望服务器再装 go 环境了,这个有上传功能,应该也可以做到,这个我研究下。
    beatboxgao
        29
    beatboxgao  
       9 小时 2 分钟前
    ansible
    defunct9
        30
    defunct9  
       9 小时 0 分钟前
    都是啥乱七八糟的,楼上是正解
    twohan198
        31
    twohan198  
       5 小时 45 分钟前
    机器台数=1 , 直接 nohup xxx &
    机器台数小于 5 ,直接 sshpass
    机器台数>5 ,ansible
    manami
        32
    manami  
       5 小时 42 分钟前
    我的 Jjava 程序,有人问就说用 docker 部署,实际上是 nohup java -jar
    因为机子资源有限,装个 docker 太耗资源了,没必要
    COW
        33
    COW  
       5 小时 37 分钟前 via Android
    写个 shell 也就几个步骤,复杂场景再考虑 ansible
    guanzhangzhang
        34
    guanzhangzhang  
       5 小时 28 分钟前
    docker-compose
    daemon 类 go 写的二进制就 systemd
    go 写的工具类 cli 就 screen
    DiamondYuan
        35
    DiamondYuan  
       5 小时 27 分钟前
    推荐 CapRover , 基于 docker 开发的。

    优点是开源免费,架构简单。 可以免去配证书的麻烦事。
    出了图形界面,还有 cli ,可以自己和 GitHub action 组合,搞 CICD 。
    Ggmusic
        36
    Ggmusic  
       4 小时 57 分钟前 via iPhone
    图形化界面 必须是 semaphore 。AMX 太重。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1295 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:54 · PVG 01:54 · LAX 09:54 · JFK 12:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.