jenkins 自动化shell构建任务配置文档
简介 shell构建命令
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">#!/bin/bash</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">CONTAINER=${container_name}</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">PORT=${port}</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"># build docker image</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">docker build --no-cache -t ${image_name}:${tag} .</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">checkDocker() {</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> RUNNING=$(docker inspect --format="{{ .State.Running }}" $CONTAINER 2>/dev/null)</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> if [ -z $RUNNING ]; then</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> echo "$CONTAINER does not exist."</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> return 1</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> fi</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> if [ "$RUNNING" == "false" ]; then</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> matching=$(docker ps -a --filter="name=$CONTAINER" -q | xargs)</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> if [ -n $matching ]; then</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> docker rm $matching</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> fi</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> return 2</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> else</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> echo "$CONTAINER is running."</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> matchingStarted=$(docker ps --filter="name=$CONTAINER" -q | xargs)</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> if [ -n $matchingStarted ]; then</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> docker stop $matchingStarted</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> docker rm ${container_name}</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> fi</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> fi</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">}</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">checkDocker</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"> </span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;"># run docker image</span></span></code></p>
<p class="MsoNormal"><code><span style="font-family: 宋体;"><span style="font-size: 14px;">docker run -itd --name $CONTAINER -p $PORT:80 ${image_name}:${tag}</span></span></code></p>
分享到:
转载:
喜欢 0
收藏
暂无评论信息
- 相关文章
- 文章推荐
-
Docker 常用命令
docker目前代替虚拟机使用的一个容器,灵活好用。
-
群辉nas docker容器 配置svn仓库,并实现外网访问
2022-08-11的这一天, 群辉nas到手了, 实现svn仓库外网的访问,折腾了好久。记录一下。
-
亚马逊推出“无需收银员”的新技术,以此帮助品牌和广告商提高销量
北京时间 6 月 30 日早间消息,据报道,亚马逊发明了一种无需收银员的技术,可以加快人们去杂货店或便利店的速度。现在,该公司希望利用这个跟踪系统来帮助品牌和广告商提高销量。&
-
docker搭建jenkins环境执行宿主机的docker无权限的解决方法
初次搭建jenkins持续集成工具的时候,在运行项目阶段出现 permission denied的情况
- 点击排行
- 站长推荐
- 猜你喜欢
- 网站信息
- 站内问答:12篇
- 站内文章:213篇
- 建站时间:已运行1238天
- 备案号: 浙ICP备2022018799号
- 语言:
- English(USA)
- French(FR)
- Chinese(ZH)
无数据