使用jenkins 在docker中发布.net core应用

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具。本文将介绍Docker下安装jenkins以及使用jenkins在Docker环境下构建.net core应用。

一、安装jenkins

这里使用Docker来安装JenKins,当然也可以直接安装到Linux中。

  • 1、配置环境
    mkdir /home/jenkins 创建jenkin文件夹,用于映射
    chown -R 1000:1000 /home/jenkins 给uid为1000的权限
    想让jenkins能有权限给docker主机发送构建镜像及容器命令,需要开放docker.sock权限
    chown -R 1000:1000 /var/run/docker.sock
    如果还是没有权限 可以暴力的使用chmod 777 /var/run/docker.sock

  • 2、运行jenkins容器
    docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home -v /usr/bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
    容器启动后,打开jenkin地址 http://192.168.0.102:9090
    会出现初始化界面,如果等待了许久仍然在初始化界面不动,需要你进入jenkins的工作目录,打开-----hudson.model.UpdateCenter.xml将 url 中的
    https://updates.jenkins.io/update-center.json
    更改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    是国内的清华大学的镜像地址。
    或者更改为http://updates.jenkins.io/update-center.json,即去掉 https 中的 s 。然后重新下容器。
    初始化完成后会要输入密码
    查看密码
    cat /home/jenkins/secrets/initialAdminPassword
    输入密码后会让我们输入系统的管理员名称及密码,设置完后跳转到插件安装界面,我们选择安装推荐的插件,里面包含git等等常用的插件。

    安装完插件后会跳转到系统管理员设置界面

后面的几个页面都使用默认设置,即完成初始化配置。 完成后的界面如下

二、在docker环境下构建.net core应用

  • 1、准备.net core应用
    新建一个.net core 3.1的web应用程序项目,在项目中添加docker容器支持,自动生成Dockerfile文件。这里演示使用源代码的方式构建,所以不需要修改Dockerfile,但是需要将Dockerfile文件移动到解决方案sln目录下(默认生成的是在项目目录下)。然后在Github上建立一个代码仓库,直接将解决方法推送到GitHub上。然后使用这个代码仓库来进行构建。
  • 2、jenkins新建任务。
    在jienkins中点击新建按钮,创建一个新任务。填写任务名字,选择自由风格,如下图

接着来到了任务设置界面
设置为GitHub项目,填写GitHub地址

源码管理,选择git,填写仓库地址

如果使用手动构建,不需要设置构建触发器和构建环境
构建选项卡,选择执行shell,shell命令如下

cd /var/jenkins_home/workspace/testpro/WebApp/
docker stop mytestjenkins
docker rm mytestjenkins
docker build -t mytestbuild .
docker run -d -p 9009:80 --name mytestjenkins mytestbuild

cd /var/jenkins_home/workspace/testpro/WebApp/ 这行命令解释:/var/jenkins_home为jenkins的目录,也就是我们前面运行jenkins容器命令中的映射目录。workspace为jenkins拉取代码的目录,testpro为任务的名字,WebApp是我们存放在GitHub上项目的文件夹名称。
第一次手动构建一次容器,不然后续自动构建时stop及rm容器会报错,因为不存在该容器。

然后保存。
立即构建

构建结果

访问构建的容器 http://192.168.0.102:9009/weatherforecast 看到有正常的数据返回。

参考文档
在Docker内安装jenkins运行和基础配置
Linux文档整理之【Jenkins+Docker自动化部署.Net Core】

原文地址:https://www.cnblogs.com/KQNLL/p/13621891.html