Skip to content

Commit 3dfb23a

Browse files
committed
优化文档
1 parent d5a16c6 commit 3dfb23a

File tree

1 file changed

+51
-87
lines changed

1 file changed

+51
-87
lines changed

nodejs-cicd/基于Node.js-Docker的CICD-DevOps实践.md

Lines changed: 51 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -235,13 +235,11 @@ PS D:\04_GitHub\java-architect-util\nodejs-cicd\cicd_web>
235235

236236
![image-20240607110759329](基于Node.js-Docker的CICD-DevOps实践/image-20240607110759329.png)
237237

238-
238+
#### 4.1 克隆代码
239239

240240
> git clone http://192.168.3.4:28033/CoderDream/deploy.git
241241
242-
243-
244-
deploy ->index.js 端口4000
242+
* 编写index.js 端口4000
245243

246244
```js
247245
const http=require('http')
@@ -256,7 +254,7 @@ http.createServer((req,res)=>{
256254
})
257255
```
258256

259-
deploy->deploy.sh
257+
* deploy.sh
260258

261259
```
262260
#! /bin/sh
@@ -265,50 +263,37 @@ docker build -t cicd-web .
265263
docker run --name=cicdweb -d -p 23333:3000 cicd-web
266264
```
267265

268-
构建Docker镜像前拉取仓库
269-
270-
在NAS拉取代码
271-
272-
> git clone http://192.168.3.4:28033/CoderDream/deploy.git
273-
274-
266+
修改sh文件权限
275267

276268
> chmod +x deploy.sh
277269
278270
![image-20240607114530176](基于Node.js-Docker的CICD-DevOps实践/image-20240607114530176.png)
279271

280-
#### 4.2 提交代码
281-
282-
> git config --global user.email "coderdream@gmail.com"
283-
> git config --global user.name "CoderDream"
284-
285-
> root@DS920plus:/volume1/home/deploy# chmod +x deploy.sh
286-
> root@DS920plus:/volume1/home/deploy# git add .
287-
> root@DS920plus:/volume1/home/deploy# git commit -m 'xxx'
288-
> git push
289-
290-
![image-20240607120526235](基于Node.js-Docker的CICD-DevOps实践/image-20240607120526235.png)
272+
#### 4.2 deploy web 服务启动子进程,执行 shell 脚本
291273

274+
* shell 脚本完成以下工作:
292275

276+
- web 项目代码克隆或者拉取
293277

294-
![image-20240607144520230](基于Node.js-Docker的CICD-DevOps实践/image-20240607144520230.png)
278+
- 删除 web 旧容器和镜像
295279

280+
- 生成新的 web 镜像
296281

282+
* deploy.sh
297283

298284
```
299285
#! /bin/sh
300-
pjName='cicd-web'
286+
pjName='cicd_web'
301287
302288
if [ ! -d "www/${pjName}" ]; then
303-
echo git clone
289+
echo 'git clone'
304290
cd www
305291
git clone http://192.168.3.4:28033/CoderDream/${pjName}
306292
cd ${pjName}
307293
else
308294
echo 'git pull'
309295
cd www/${pjName}
310296
git pull
311-
312297
fi
313298
314299
docker stop cicdweb
@@ -319,12 +304,34 @@ docker build -t cicd-web .
319304
docker run --name=cicdweb -d -p 23333:3000 cicd-web
320305
```
321306

322-
#### 4.3 build deploy 容器
307+
#### 4.3 给 deply web 创建 Dockerfile
323308

324-
> docker build -t cicd-deploy .
309+
```
310+
FROM node:12.13-alpine
311+
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
312+
RUN apk add git
313+
314+
WORKDIR /usr/src/app
315+
316+
COPY package*.json ./
317+
318+
RUN npm install --only=production
319+
320+
COPY . .
321+
322+
CMD [ "node", "index.js" ]
325323
326324
```
327325

326+
327+
328+
#### 4.4 生成 deploy web 服务镜像
329+
330+
####
331+
332+
> docker build -t cicd-deploy .
333+
334+
```
328335
root@DS920plus:/volume1/home/deploy# docker build -t cicd-deploy .
329336
Sending build context to Docker daemon 74.75kB
330337
Step 1/7 : FROM node:12.13-alpine
@@ -372,44 +379,9 @@ Successfully tagged cicd-deploy:latest
372379
root@DS920plus:/volume1/home/deploy#
373380
```
374381

375-
376-
377382
![image-20240607162031702](基于Node.js-Docker的CICD-DevOps实践/image-20240607162031702.png)
378383

379-
#### 4.4 deploy web 服务启动子进程,执行 shell 脚本
380-
381-
```
382-
#! /bin/sh
383-
pjName='cicd_web'
384-
385-
if [ ! -d "www/${pjName}" ]; then
386-
echo 'git clone'
387-
cd www
388-
git clone http://192.168.3.4:28033/CoderDream/${pjName}
389-
cd ${pjName}
390-
else
391-
echo 'git pull'
392-
cd www/${pjName}
393-
git pull
394-
fi
395-
396-
docker stop cicdweb
397-
docker rm -f cicdweb
398-
docker rmi -f cicd-web
399-
400-
docker build -t cicd-web .
401-
docker run --name=cicdweb -d -p 23333:3000 cicd-web
402-
```
403-
404-
405-
406-
- shell 脚本完成以下工作:
407-
- web 项目代码克隆或者拉取
408-
- 删除 web 旧容器和镜像
409-
- 生成新的 web 镜像
410-
- 给 deply web 创建 Dockerfile
411-
- 生成 deploy web 服务镜像
412-
- 启动 deploy web 容器
384+
#### 4.5 启动 deploy web 容器
413385

414386
![image-20240607145549877](基于Node.js-Docker的CICD-DevOps实践/image-20240607145549877.png)
415387

@@ -419,10 +391,18 @@ docker run --name=cicdweb -d -p 23333:3000 cicd-web
419391
>
420392
>
421393
>
422-
> docker run -d --name=deploy --network cicd_net -p 24444:4000 -v /usr/local/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock --user root cicd-deploy
394+
>
423395
424396
![image-20240607162229959](基于Node.js-Docker的CICD-DevOps实践/image-20240607162229959.png)
425397

398+
399+
400+
```shell
401+
docker run -d --name=deploy --network cicd_net -p 24444:4000 -v /usr/local/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock --user root cicd-deploy
402+
```
403+
404+
405+
426406
![image-20240607162308177](基于Node.js-Docker的CICD-DevOps实践/image-20240607162308177.png)
427407

428408

@@ -441,31 +421,13 @@ http://192.168.3.4:23333/
441421

442422
![image-20240607165031664](基于Node.js-Docker的CICD-DevOps实践/image-20240607165031664.png)
443423

444-
![image-20240607165237012](基于Node.js-Docker的CICD-DevOps实践/image-20240607165237012.png)
445424

446-
```
447425

448-
Successfully tagged cicd-web:latest
449426

450-
docker: Error response from daemon: Conflict. The container name "/cicdweb" is already in use by container "c6a42d20e6cdffa0d96cf2772ae34b5152a2f179dc3633c79044a41503348746". You have to remove (or rename) that container to be able to reuse that name.
451427

452-
See 'docker run --help'.
453428

454-
docker: Error response from daemon: pull access denied for cicd-web, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
455429

456-
See 'docker run --help'.
457430

458-
docker: Error response from daemon: pull access denied for cicd-web, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
459-
460-
```
461-
462-
463-
464-
![image-20240607165413319](基于Node.js-Docker的CICD-DevOps实践/image-20240607165413319.png)
465-
466-
```
467-
468-
```
469431

470432

471433

@@ -489,13 +451,15 @@ CMD [ "node", "index.js" ]
489451
> dockerfile RUN apk add 卡住问题解决
490452
> https://blog.csdn.net/zhangzhen02/article/details/112217348
491453
492-
#### 4.5 git hook 让 deploy 自动构建镜像生成 web 容器
454+
#### 4.6 git hook 让 deploy 自动构建镜像生成 web 容器
493455

494456
- 配置 gogs 的 web hook,仓库提交代码时,推送 deploy web 服务
495457

496458
![image-20240607173833127](基于Node.js-Docker的CICD-DevOps实践/image-20240607173833127.png)
497459

498-
#### 4.6 成功自动发布
460+
修改web应用提交到git后,deploy自动发布:
461+
462+
* deploy容器日志
499463

500464
```
501465
git pull
@@ -533,7 +497,7 @@ Successfully tagged cicd-web:latest
533497
6e7ff44d92a65d3dc8506831ffb7a821047dfe61aa1d70a12d47239ea270bf14
534498
```
535499

536-
修改web应用提交到git后,deploy自动发布:
500+
* 访问最新的web服务
537501

538502
![image-20240607174315936](基于Node.js-Docker的CICD-DevOps实践/image-20240607174315936.png)
539503

0 commit comments

Comments
 (0)