【.NET Core】Docker Jenkins ASP.NET Core自动化部署
程序员文章站
2022-05-14 15:33:39
本文基于GitHub演示自动化部署,实际上你可以选择任意的Git托管环境。 使用的模式:DooD(Docker outside of Docker)。 本文所有内容均开源 链接 欢迎关注我的GitHub: "neverc/netcore jenkins" (由于是半年前构建的,sdk版本为dotne ......
本文基于GitHub演示自动化部署,实际上你可以选择任意的Git托管环境。
使用的模式:DooD(Docker-outside-of-Docker)。
本文所有内容均开源
链接
欢迎关注我的GitHub:
- neverc/netcore-jenkins(由于是半年前构建的,sdk版本为dotnet sdk:2.0)
- NeverCL/netcore-jenkins(上传docker hub上的源码)
- NeverCL/jenkins-demo(本例中的repo)
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
- 为了做到自动化部署,在Jenkins的系统设置中找到
GitHub Servers
模块,选择secret text添加AccessToken为认证方式 - 在创建的Jenkins任务中,配置触发器为
GitHub hook trigger for GITScm polling
- 构建选择执行 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!'
推荐阅读
-
ASP.NET Core 1.0 部署 HTTPS (.NET Core 1.0)
-
Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD
-
ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
-
详解ASP.NET Core 网站在Docker中运行
-
ASP.NET Core+Docker+Jenkins实现持续集成的完整实例
-
Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署的实现
-
详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
-
Asp.net Core 初探(发布和部署Linux)
-
详解将ASP.NET Core应用程序部署至生产环境中(CentOS7)
-
.net core 项目+jenkins+git+docker实现自动化部署