Skip to content

Commit 172d11d

Browse files
committed
[优化] 优化CI编译的docker脚本
Change-Id: I241dc498d5318e2105415ce72947e086ad5e12be
1 parent 38cfc58 commit 172d11d

File tree

1 file changed

+14
-37
lines changed

1 file changed

+14
-37
lines changed

build/docker/start-docker.sh

Lines changed: 14 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,16 @@ ngVersion=$3
77
home=$(cd `dirname $0`/../..; pwd);
88
cd $home
99

10+
if [ ! -f "$AWADE_BUILD_RESOURCE/docker/common.sh" ]; then
11+
echo "错误: common.sh 文件不存在 ($AWADE_BUILD_RESOURCE/docker/common.sh)"
12+
exit 1
13+
fi
14+
. $AWADE_BUILD_RESOURCE/docker/common.sh
15+
1016
dockerName="jigsaw_build_${change}_${patch}_${ngVersion}"
1117
echo "start-docker >>>>>>>>>> dockerName: $dockerName"
1218

13-
cleanupDocker() {
14-
echo "cleanupDocker >>>>>>>>>> $dockerName ..."
15-
# 停止并删除容器
16-
containerId=$(docker ps -a | grep $dockerName | awk {'print $1'})
17-
if [ ! -z "$containerId" ]; then
18-
echo "$dockerName: 停止并删除容器 $containerId ..."
19-
docker kill $containerId
20-
docker rm $containerId
21-
fi
22-
23-
# 删除镜像
24-
imageId=$(docker images | grep $dockerName | awk {'print $3'})
25-
if [ ! -z "$imageId" ]; then
26-
docker rmi -f $imageId
27-
fi
28-
}
29-
cleanupDocker
19+
cleanupDocker $dockerName
3020

3121
# 新建一个临时目录,用来放对应的Dockerfile来构建镜像
3222
tempDockerDir="temp_docker_build_$ngVersion"
@@ -49,39 +39,26 @@ fi
4939

5040
# 基于创建的镜像,启动一个容器。同时将服务器上的 AWADE_BUILD_RESOURCE 目录挂载到容器中,方便获取编译资源
5141
docker run -v $AWADE_BUILD_RESOURCE:/data/awade-build/resource --name $dockerName ${imageId} &
52-
timeout=0
53-
while true; do
54-
status=$(docker inspect $dockerName --format '{{.State.Status}}')
55-
echo "$dockerName: 当前容器状态 >>>>>> status: $status"
56-
if [ "$status" = "running" ]; then
57-
break
58-
fi
59-
sleep 3
60-
timeout=$((timeout + 3))
61-
if [ $timeout -ge 60 ]; then
62-
echo "$dockerName: 容器启动超时(60秒),当前状态: $status"
63-
exit 1
64-
fi
65-
done
42+
waitDockerStatus $dockerName
6643

6744
containerId=$(docker ps -a | grep $dockerName | awk {'print $1'})
6845
echo "$dockerName: containerId >>>>>>>>>> $containerId ..."
6946
if [ -z "$containerId" ]; then
7047
echo "$dockerName: 未发现编译容器"
71-
cleanupDocker
48+
cleanupDocker $dockerName
7249
exit 1
7350
fi
7451

7552
exitCode=$(docker wait $dockerName)
7653
echo "$dockerName: docker wait >>>>>>>>>> exitCode: $exitCode"
77-
docker cp $containerId:/data/build/build-in-docker-$ngVersion.log .
7854
if [ "$exitCode" != "0" ]; then
79-
cleanupDocker
55+
cleanupDocker $dockerName
8056
exit $exitCode
8157
fi
8258

59+
docker cp $containerId:/data/build/build-in-docker-$ngVersion.log .
8360
if [ "$ngVersion" = "ng9" ]; then
84-
cleanupDocker
61+
cleanupDocker $dockerName
8562
exit 0
8663
fi
8764

@@ -91,8 +68,8 @@ echo "$dockerName: cp dist from $containerId ..."
9168
docker cp $containerId:/data/build/dist .
9269
if [ "$?" != "0" ]; then
9370
echo "$dockerName: Error: docker cp $containerId:/data/build/dist ."
94-
cleanupDocker
71+
cleanupDocker $dockerName
9572
exit 1
9673
fi
9774

98-
cleanupDocker
75+
cleanupDocker $dockerName

0 commit comments

Comments
 (0)