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

一、当前环境及安装

1、Ubuntu 16.04.2
2、安装Docker [ https://www.jianshu.com/p/840145c78568 ]
3、安装docker-compose[ https://www.jianshu.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.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容