【.NET Core】Docker Jenkins ASP.NET Core自动化部署

本文基于GitHub演示自动化部署,实际上你可以选择任意的Git托管环境。
使用的模式:DooD(Docker-outside-of-Docker)。
本文所有内容均开源

链接

欢迎关注我的GitHub:

Jenkins安装

启动基于dotnet的jenkins:

docker run --name my-jenkins -P \
    -e TZ='Asia/Shanghai' \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /var/jenkins_home:/var/jenkins_home \
    -d neverc/netcore-jenkins

docker exec -it my-jenkins cat /var/jenkins_home/secrets/initialAdminPassword // 查看jenkins的初始化密码,当然你可以去掉docker exec -it my-jenkins

安装的必选插件:Git GitHub Integration

如果安装插件非常慢,可使用镜像:
上海大学镜像

GitHub

配置Person AccessToken

创建一个仓库

建议根目录添加1个setup.sh,用于jenkins构建

配置Jenkins

  1. 为了做到自动化部署,在Jenkins的系统设置中找到GitHub Servers模块,选择secret text添加AccessToken为认证方式
  2. 在创建的Jenkins任务中,配置触发器为GitHub hook trigger for GITScm polling
  3. 构建选择执行 shell:bash ./setup.sh

可参考的内容

Dockerfile

FROM microsoft/aspnetcore
WORKDIR /app
ENV ASPNETCORE_URLS http://*:5000
EXPOSE 5000
COPY ./publish /app
CMD ["dotnet", "jenkins-demo.dll"]

执行shell

echo 'start'

# variables
echo 'variables:'
GITHASH=`git rev-parse --short HEAD`
IMGNAME=netcore-demo
CONTAINER=netcore-demo-web
# publish
echo 'publish:'
rm -rf ./publish
dotnet publish -o ./publish
# image
echo 'image:'
docker build -t $IMGNAME:$GITHASH .
docker tag $IMGNAME:$GITHASH $IMGNAME:latest
docker rmi -f $(docker images -q -f dangling=true)
# container
echo 'container:'
docker stop $CONTAINER || true && docker rm -f $CONTAINER || true
docker run -d --name $CONTAINER $IMGNAME

echo 'done!'
posted @   Never、C  阅读(3553)  评论(10编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示