如何发布程序到线上?

2014-12-03 11:45:19 +08:00
 yuankui
那java web程序为例?

我可以想象到的几种方式:

1. 线下maven编译,打成war包,然后,然后scp到线上指定目录
2. 打成rpm包?或者deb包?然后传到某个服务器,然后线上通过rpm/deb安装?

第一种方式的缺点就是无法知道你线上运行的文件是哪个版本的(小公司是不是也不在意这些?)
第二种感觉这个流程太重了

希望听听大家是怎么发布程序的?
3585 次点击
所在节点    程序员
20 条回复
v3aqb
2014-12-03 13:27:08 +08:00
git push
aszxqw
2014-12-03 13:29:42 +08:00
@v3aqb +1
kodango
2014-12-03 13:31:50 +08:00
建议打包成 rpm/deb,就第一次麻烦点,以后部署发布都很简单。
tabris17
2014-12-03 13:31:54 +08:00
git+自动部署
tabris17
2014-12-03 13:34:33 +08:00
或者 ansible playbook 自动部署
yuankui
2014-12-03 14:32:16 +08:00
@v3aqb
@aszxqw
赞啊,这个思路不错!
yuankui
2014-12-03 14:32:57 +08:00
@tabris17
@v3aqb
@aszxqw
你们说的这种,是利用git的hook来实现吧?
tabris17
2014-12-03 14:35:04 +08:00
format
2014-12-03 14:45:01 +08:00
shell
izoabr
2014-12-03 14:49:12 +08:00
要是我就自己弄个shell脚本,然后跟tgz包cat到一起,做成bin,用户拿到直接执行,脚本自己去检查现有版本,还能做安装后的配置和检查脚本
yakczh
2014-12-03 14:50:31 +08:00
rsync
evlos
2014-12-03 14:56:58 +08:00
https://github.com/progrium/dokku
开源 PaaS 平台,git 自动化部署到 docker。

Linode 用户因为自定义内核关系所以无法正常安装,可以自行安装 docker 后尝试我 fork 的版本。
https://github.com/Evlos/forked-dokku
msg7086
2014-12-03 15:37:29 +08:00
@evlos Linode可以安装grub以后从原生内核引导。
yuankui
2014-12-03 16:46:18 +08:00
@tabris17 谢谢啊,我找到的也是这篇文章!
evlos
2014-12-03 17:36:55 +08:00
@msg7086 我指的无法正常安装就是你得跟着 https://www.linode.com/docs/tools-reference/custom-kernels-distros/run-a-distributionsupplied-kernel-with-pvgrub 这样类似的流程折腾半天

为什么不直接这样
sudo apt-get update
sudo apt-get install docker.io
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
wget -qO- https://raw.githubusercontent.com/Evlos/forked-dokku/master/bootstrap.sh | sudo bash
直接四行搞定呢?
msg7086
2014-12-03 19:01:44 +08:00
@evlos 这里有个[捷径]( http://notes.pault.ag/linode-pv-grub-chainning/ ),亲测成功
msg7086
2014-12-03 19:04:02 +08:00
@evlos 顺便一提我不是要反驳你或者怎么样,只是做一下补充而已。
evlos
2014-12-03 19:04:32 +08:00
@msg7086 我了解,多谢提供捷径
Tr0y
2014-12-03 19:26:10 +08:00
jenkins
wushuiyong
2015-11-15 20:23:14 +08:00
为什么不试下 Walle-瓦力,一个 web 部署系统工具,配置简单、功能完善、界面流畅、开箱即用!项目地址: https://github.com/meolu/walle-web

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/151172

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX