大家发布项目,从部署到上线,一般花多长时间?

2022-06-23 17:41:54 +08:00
 wtfedc

我们这边小公司,没有用公有云流水线和仓库。 用的是一个 4 核 8G 的机器跑 gitlab runner ,专门拉代码 做 docker build ,然后把 image push 到私有仓库。感觉时间用的有点长,不同的前端项目 14 分钟~ 30 分钟,后端项目 5 分钟左右

今天看了一个前端部署流水线,docker build 时的 copy 操作,用了 660s ,没想明白为啥这么慢,代码仓库大小是 23M ,按道理代码仓库和 runner 机器都在一个内网网段,也没有网络瓶颈,ECS 监控看部署的时候,IOPS 才 200 次 /s ,远远没到机器云盘的上限 2400 次 /s 。不知道和 inode 快满了是不是有关系。

前端项目占用了很多 inode ,而且所有项目的 CI 没有做清理 image 的操作,有个 linux 定时任务,1 天清一次,但是同一天部署前端次数太多的话,inode 就满了,就得手动清理,也是很醉🐶

2946 次点击
所在节点    程序员
24 条回复
flighter
2022-06-24 10:17:52 +08:00
安装依赖,编译打包镜像 5 到 10 分钟吧,部署集群 1 到 5 分钟吧
wtfedc
2022-06-24 10:36:08 +08:00
@NNNNzs node_modules 是在 docker copy 之后,再进行 npm install 生成的,压缩的话莫非在 git pre commit 这一步进行
wtfedc
2022-06-24 10:40:29 +08:00
不好意思 20 楼说错, 是在 docker add 命令前进行的 npm install ,node_modules 也用到了 cache
wtfedc
2022-06-24 10:48:53 +08:00
自己把自己绕糊涂了,我把整个 dockfile 贴出来:
+
FROM --私有库地址--/public/alpine-streamline-node:14.10.1 as initial

USER node
COPY --chown=node:node package.json package-lock.json /home/node/code/
COPY --chown=node:node script/ /home/node/code/script/

RUN cd /home/node/code && npm --registry https://--私有库地址--/ install

ENV NODE_ENV production

ADD --chown=node:node . /home/node/code

RUN cd /home/node/code \
&& cp consul.config.json.example consul.config.json \
&& sed -i "/host/c \"host\": \"confsrv.smartstudy.com\"\," consul.config.json \
&& sed -i "/env/c \"env\": \"production\"" consul.config.json \
&& npm run gen:config \
&& npm run build:pre

FROM scratch as server
COPY --from=initial /home/node/code/build /

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

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

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

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

© 2021 V2EX