本文基于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!'

最新文章

  1. Java 计算年份,月份,剩余天数
  2. zookeeper 安装及一些问题
  3. curl post
  4. el captain设置环境变量
  5. eclipse中文乱码问题解决方案
  6. ASP.NET MVC3 实例(六) 增加、修改和删除操作(二)
  7. cdh4.1.2 hadoop和oozie集成问题
  8. mongodb 更新数组出现can't append to array using string field name
  9. vi命令笔记
  10. Android推断程序前后台状态
  11. secache 详解
  12. “玲珑杯”ACM比赛 Round #12题解&源码
  13. Microsoft dynamic 批量更新
  14. [Python]django使用多进程连接msyql错误
  15. luogu P5303 [GXOI/GZOI2019]逼死强迫症
  16. element-ui 源码解析 一
  17. WCF双工通信单工通信
  18. javaBean的相关知识和应用
  19. ubuntu 安装国际qq
  20. Javassist 字节码 语法 MD

热门文章

  1. c 语言typedef 和 define的使用和区别
  2. 智能合约语言 Solidity 教程系列9 - 错误处理
  3. win-zabbix_agent端配置解析
  4. JavaScript的作用域链
  5. requests-文件上传
  6. Spring Cloud学习笔记-005
  7. 笔记本电脑连wifi然后通过有线网口做桥接
  8. 【Android】Mac下Android Studio设置App启动页
  9. 数据结构-快速排序(C#实现)
  10. jenkins实战(一):war安装及插件安装