centos7下docker+.netcore+jenkins实现持续集成

在进行持续集成的过程中 遇到了些问题 所以写文章记录下

1.安装Jenkins

①.安装java环境 

②.安装jenkins:

yum install git

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install jenkins 

可以进入vim /etc/sysconfig/jenkins进行端口号或者其他配置的修改

JENKINS_PORT为端口号

③.配置jenkins:

chown -R root:root /var/lib/jenkins

chown -R root:root /var/cache/jenkins

chown -R root:root /var/log/jenkins

重启jenkins:service jenkins restart

验证jenkins状态:systemctl start jenkins

④.解锁jenkins:

输入服务器地址:http://xxxxx:8080/  通过cat /var/lib/jenkins/secrets/initialAdminPassword进行密码的获取

输入密码后安装推荐插件 等安装完成创建用户即可访问主页面

2.创建一个.netcore的项目 勾选docker支持

①.添加docker-compose文件的配置

②.对初始文件Dockerfile进行修改(由于这里使用初始的文件导致docker构建镜像的时候一直失败,所以对其进行了小改,后续如果有不正确的希望可以指出来)

下面是修改后的文件:

FROM docker.io/microsoft/dotnet:latest 
WORKDIR /app
EXPOSE 80

FROM docker.io/microsoft/dotnet:latest
WORKDIR /src
COPY ["WebApplication5/WebApplication5.csproj", "WebApplication5/"]
RUN dotnet restore "WebApplication5/WebApplication5.csproj"
COPY . .
WORKDIR "/src/WebApplication5"
RUN dotnet build "WebApplication5.csproj" -c Release -o /app

RUN dotnet publish "WebApplication5.csproj" -c Release -o /app

WORKDIR /app
ENTRYPOINT ["dotnet", "WebApplication5.dll"]

③.进行docker-compose.override.yml文件进行端口号的修改

5006代表服务器访问的端口号 80代表容器内部的端口号与上面第二点进行对应,由于程序默认启动是占用80端口,所以这里选择容器内的80端口直接指向了该程序

④.之后将项目提交上git或其他网站进行托管

3.由于jenkins需要用到docker-compose 所以需要对docker-compose进行安装

官方安装:https://docs.docker.com/compose/install/

4.开始进行jenkins任务的创建

①.点击新建任务之后选择第一个,输入名字点击确定

②.在源码管理输入代码仓库地址

③.选择触发模式,这里采用的是轮询:

H/2 * * * * : 代表两分一次

④.配置构建环境:

10分钟代表如果构建超过10分钟,则默认超时

⑤.构建时执行的命令:

#!/bin/bash
# 获取短版本号

GITHASH=`git rev-parse --short HEAD`
echo ---------------Remove-Orphans------------------
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml  -p WebApplication5 down --rmi local --remove-orphans
echo ------------------Config-----------------------
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml  -p WebApplication5 config
echo ---------------Publishing...------------------
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml  -p WebApplication5 up -d --build

echo ---------------Clear-Images...------------------
clearImagesList=$(docker images -f "dangling=true" -q)
if [ ! -n "$clearImagesList" ]; then
  echo "No need to clean up images."
else
  docker rmi $(docker images -f "dangling=true" -q)
  echo "clear success."
fi
echo ---------------Clear-Containers...------------------

点击应用 

⑥进入创建的任务中进行构建,选择立即构建

等待过程中可以点击构建记录的控制台进行执行日志的查看

5.构建完成后可进入服务器查看任务执行情况

docker ps -a:查看容器运行情况

如果ports那一列没有的话代表构建失败了 可以查看日志进行查看 后面的参数为容器id

docker logs a3aae354de7f

至此就完成了.netcore+jenkins+docker的持续集成了 这样就可以更加快速地进行版本的迭代 更容易发现问题且减少人工发布的时间

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值