从零开始的.net core 基于Jenkins,docker实现自动化部署

一、当前环境及安装

1、Ubuntu 16.04.2
2、安装Docker [ //www.greatytc.com/p/840145c78568 ]
3、安装docker-compose[ //www.greatytc.com/p/840145c78568 ]

二、使用 docker-compose 快速安装Jenkins

1、创建 自定义 目录并设置权限
$ mkdir /home/jenkins      #将jenkins服务目录挂载到宿主机的目录
$ sudo chown -R 1000 /home/jenkins     #把当前目录的拥有者赋值给uid 1000
$ cd /home/jenkins/ 
$ touch  docker-compose.yml     #创建docker-compose文件
$ vim  docker-compose.yml       #写入docker-compose文件

docker-compose.yml文件

version: '3'
services:
  docker_jenkins:  # 容器名称,根据实际修改
    restart: always   # 开启此选项,在机器重启后,会自动启动这些容器,否则,就要手动启动容器
    image: jenkins/jenkins:lts  # 镜像名,如果不存在,则从网络下载
    container_name: docker_jenkins  # 容器名,在运行名称是唯一的
    ports:  # 端口映射
      - "8080:8080"
      - "50000:50000"
    volumes: # 挂载数据卷,对应docker run命令的-v选项。
      - ./jenkins_home/:/var/jenkins_home    #jenkins服务目录挂载到宿主机的自定义目录
      - /usr/bin/docker:/usr/bin/docker          #将主机 docker 映射到容器内,以便在jenkins脚本里执行docker
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
      - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
  • docker在容器内构建的时候,会出现权限不够。可以在宿主机中使用以下方式解决:
#注意,目前这个方法,只要docker服务重启, 就需要重新设置一次,有一次性的方法 还请留言指教
  $ sudo chmod 777 /var/run/docker.sock  
  $ sudo chmod 777 /usr/local/bin/docker-compose  
2、构建Jenkins服务
$ docker-compose up -d   // cd至docker-compose.yml文件目录执行
// 访问 http://你的ip:8080 进行初始化
$ docker logs   docker_jenkins     //查看访问日志,即可查看到登录令牌
安装插件,选择推荐安装
  • 注:如若不小心,未创建新的账户,可通过查看挂载目录下的 /secrets/initialAdminPassword 中的 Key 作为密码登录,前提是你有挂载目录到宿主机
    账户:admin
    密码:cat ./data/secrets/initialAdminPassword

三、创建一个简单的asp.net core 项目

1、创建 asp.net core 项目
创建asp.net core项目1.png

创建asp.net core项目2.png
2、配置asp.net core项目
配置asp.net core项目1.png

配置asp.net core项目2.png
配置asp.net core项目3.png
3、将代码提交到码云git仓库

四、配置Jenkins

1、插件安装
  • 前往 Manage Jenkins -> Manage Plugins -> Available
  • 右侧 Filter 输入: Gitee
  • 下方可选列表中勾选 Gitee
  • 点击 Download now and install after restart


    安装gitee插件.png
2、简单配置 Jenkins的 码云 插件
  • 前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections
  • Connection name 中输入 Gitee 或者你想要的名字
  • Gitee host URL 中输入码云完整 URL地址:https://gitee.com(码云私有化客户输入部署的域名)
  • Credentials 中如还未配置码云 APIV5 私人令牌,点击 Add - > Jenkins
    1. Domain 选择 Global credentials
    2. Kind 选择 Gitee API Token
    3. Gitee API Token 输入你的码云私人令牌,获取地址:https://gitee.com/profile/personal_access_tokens
    4. ID, Descripiton 中输入你想要的 ID 和描述即可。
  • Credentials 选择配置好的 Gitee APIV5 Token
  • 点击 Test Connection 测试链接是否成功

配置成功后如图所示:

gitee配置成功.png

详细配置请看官方文档:
https://gitee.com/help/articles/4193#article-header0
需要其他git方案的配置需去查看官方文档

五、新建Jenkins 构建任务

1、新建任务

前往 Jenkins -> New Item , name 输入 ' test',选择 Freestyle project 保存即可创建构建项目。

2、源码管理配置
源码管理配置.png
3、触发器配置
  • Enabled Gitee triggers 勾选您所需要的构建触发规则
  • Secret Token for Gitee WebHook 该选项可以配置 WebHook 的密码,该密码需要与码
    云 WebHook配置的密码一致方可触发构建。
触发器配置.png
GiteeWebHook配置.png
4.1、构建脚本
pwd     #打印当前路径
### 此处只是简单的测试jenkins构建。所以构建后的产物只是简单的发布到本地机器。仅做demo演示
docker-compose build  
docker-compose up -d
#构建完成后删除中间镜像
echo y|docker image prune 
  • 构建脚本
4.2、SSH构建脚本
cd /home/dayun_erp/dayun_erp_server
#docker-compose down
docker-compose build
docker-compose up -d
echo y|docker image prune 
配置SSH远程部署任务

配置远程服务器SSH服务

六、构建

1、进入任务 点击Bulid Now进行构建任务
点击构建任务.png
2、进入服务器控制台 输入 docker ps -a查看构建是否成功
6. docker ps -a 查看构建的服务
3、在浏览器中打开asp.net core 服务
7.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容