据我所知,大公司的代码上线流程一般都会很规范,有专门的代码发布系统。但小公司的话,可能会没有实力去开发这种发布系统,所以想了解下这个问题。
如果是我的话,我的做法应该是: 首次部署使用 git clone,后续代码的变更则使用 git pull
这种做法好不好?或者有没有更好的做法呢?
101
oneisall8955 2021-06-26 05:46:53 +08:00 via Android 1
曾经小公司经历的版本:
v1:本地打包+sftp+手工命令 v2:上述封装成本地脚本命令一件执行 v3:项目多了,改 jenkins 发布,按钮点点点 现在:jenkins+docker 镜像 |
102
oneisall8955 2021-06-26 05:49:36 +08:00 via Android
@yhxx 生产这样不怕进程没了吗😂
|
103
madpecker009 2021-06-26 08:41:59 +08:00
Ctrl+c Ctrl+v
|
104
yumerdev93 2021-06-26 08:50:02 +08:00 1
本地打包 docker image,push 到自己的仓库,然后 docker swarm 更新下 service🐶
|
105
xinJang 2021-06-26 08:59:29 +08:00
看来这里需要先对小公司做个定义。比如我目前所在公司,就我一个人搞技术!!!
目前做法是:后端直接替换 class 跟 jsp(tomcat),公众号直接替换 npm build 之后的 dist(改名为 app) 盲人摸象的感觉,随时准备裸辞 |
106
bojackhorseman 2021-06-26 09:06:25 +08:00 via iPhone
@yhxx xs 哈哈哈
|
107
jeffh 2021-06-26 09:07:41 +08:00
|
108
darrenfang 2021-06-26 09:14:52 +08:00 1
服务器上装 eclipse,代码在服务器上面写,写完在 eclipse 里面重启服务器 😈
|
109
creanme 2021-06-26 09:42:12 +08:00
早些年用过 scp 部署,后来用过 gitlab
|
110
weitch 2021-06-26 09:42:38 +08:00
svn co svn://xxxxx/app
service httpd restart |
111
JingKeWu 2021-06-26 09:55:58 +08:00
docker+k8s
|
112
anonymous256 2021-06-26 09:59:16 +08:00
@whileFalse git pull 容易自动合并或者卡在冲突. 那是因为你们工作在同一个分支上,每个人的改动不一。
最佳实实践每个人用自己的分支,最后再 PR 或 merge 代码到主分支,merge 的权限交给对代码最熟悉的人。 |
113
axzy 2021-06-26 10:11:32 +08:00
小公司啊?直接 FTP 上传呗,然后就完事了
|
114
byte10 2021-06-26 11:40:13 +08:00
都是太低端啦,直接 vscode 远程开发,改完之后,直接启动服务,nohup 命令即可,发布完成。随时有问题,随时改,改完发布完成。有问题直接开一个节点 debug 完后,重新发布。手动、狗头
|
115
yinxianwei 2021-06-26 11:57:09 +08:00
Jenkins 配合 git flow
|
116
cp19890714 2021-06-26 12:29:31 +08:00
上家公司稍大, 用 jenkins + k8s
现在的小公司, 云效部署, 比 jenkins 省事多了. 30 人以下的公司, 真心推荐云效, 不用维护那么多的工具. |
117
alsas 2021-06-26 13:34:53 +08:00
sftp 手动放上去
|
118
Torpedo 2021-06-26 14:29:29 +08:00
底线就是完全自动化,可以回溯版本。
至于怎么搞,方法有很多 |
119
pcbl 2021-06-26 15:32:03 +08:00 via Android
web 面板搞起,生产数据库直接改(狗头)
|
121
cnbattle 2021-06-26 16:19:53 +08:00
目前再用:gitea+drone 自动部署
|
122
whileFalse 2021-06-26 16:27:22 +08:00 via iPhone
@anonymous256 题目说了小公司,lz 连 jenkins 都不会你让他用 pr ?一个人 force push 也可能在 ci 上冲突啊。
所以我说 ci 应该用 fetch reset clean,没错吧? git 工作流是一回事,ci 这边要做的是精确复制,不能说 ci 要正常工作还得研发保证优雅地使用 git 。 |
123
xyx0826 2021-06-26 16:40:38 +08:00
用 GitHub Actions 配合这个 Action: https://github.com/appleboy/ssh-action 通过专门创建的 deploy SSH key 在服务器上 pull 然后构建
|
124
feiniu 2021-06-26 18:44:00 +08:00
阿里云的 k8s 那一套
|
125
wellsc 2021-06-26 19:04:17 +08:00 via iPhone 2
@darrenfang 我见过 win server 服务器上直接用 pycharm 跑程序的,太野了
|
126
EscYezi 2021-06-26 19:10:23 +08:00 via iPhone
弄个脚本调用本地 winscp,批量上传到固定目录,然后挨个登录服务器执行一下部署脚本......
|
127
fiypig 2021-06-26 19:41:33 +08:00 via iPhone
FTP 感觉很容易出问题,git 还行的,或者 jenkins
|
128
fernandoxu 2021-06-26 20:50:39 +08:00
filezilla😭
|
129
xcstream 2021-06-26 23:59:37 +08:00
vscode 远程 保存立即生效
|
130
qaqLjj 2021-06-27 00:32:04 +08:00
rz 传上去可以吗?
|
131
junas7 2021-06-27 14:54:52 +08:00
mstsc -> ctrl+c -> ctrl+v -> tomcat start
|
132
lkk 2021-06-27 17:05:26 +08:00
git 代码托管设置 webhook 。服务器上 inotify-tools 时时监控文件改变,执行 git pull 。
|
133
HB9527 2021-06-27 18:38:12 +08:00
ansible
|
134
810244966 2021-06-28 00:45:52 +08:00 via Android
当然是用宝塔直接上传啦 :)
|
135
who1996 2021-06-28 07:18:53 +08:00
jenkins,遇到那种逗比老板不给时间做 infra 级别的开发的,只看业务,最主要是装自己很懂的,还是算了
|
136
helllkz 2021-06-28 09:05:07 +08:00
非开发人员,处于爱好帮开发整过 Jenkins,也仅限于前端代码,整个项目部署的流程大概是这样
停 Tomcat,更新文件,重启 Tomcat,重启 Nginx |
137
jerry1zeng 2021-06-28 09:13:02 +08:00
之前用 jenkins,但是要自己搭。后来发现了云效,可以申请小微企业扶持,免费使用,应付十几个人的小队团足够了,使用也简单。
|
138
dfkjgklfdjg 2021-06-28 09:58:55 +08:00
Jenkins,看到楼上说云效感觉可以试试看。
|
139
myCupOfTea 2021-06-28 10:18:10 +08:00
Jenkins docker k8s
|
140
darrenfang 2021-06-28 10:18:56 +08:00
@wellsc #125 公司 10 年前的项目就是在服务器 eclipse 里面跑的 😂
|
141
x66 2021-06-28 10:21:07 +08:00
jenkins docker ansible
|
142
back0893 2021-06-28 13:49:47 +08:00
直接 ftp+ssh
或者 docker 要不就 git |
143
xuxuzhaozhao 2021-06-28 14:17:46 +08:00
@code4you bingo
|
144
ezreal 2021-06-28 16:35:01 +08:00
node 项目 pm2 deploy
|