.net core使用Jenkins自动部署

.net core使用Jenkins自动部署

系统:CentOS Linux release 7.3.1611 (Core)

SDK:dotnet SDK 5.0

软件:Jenkins,Git,docker ce

本文档的前提是CentOS 7.3 X64系统下,且以上软件均已安装配置完成

docker 下载

mysql下载

安装Jenkins到docker

  • 创建jenkins工作目录

    mkdir /www/jenkins

  • 拉取jenkins镜像

    docker pull jenkins/jenkins:lts

  • 使用docker run 命令将其作为Docker中的容器运行

    docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -v ~/www/jenkins/data:/var/jenkins_home -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock --privileged=true -u root jenkins/jenkins:lts
    

    具体可参考安装Jenkins

  • 安装后设置指导

    • 解锁Jenkins当您第一次访问新的Jenkins实例时,系统会要求您使用自动生成的密码对其进行解锁。

      • 浏览到 http://localhost:8080(或安装时为Jenkins配置的任何端口),并等待 解锁 Jenkins 页面出现。

        解锁

      • 从Jenkins控制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)。

        密码

      • 登录进去以后这里默认选择推荐的插件。

        密码

      • 等待安装

      • 安装完成后创建一个用户名和密码,即可完成安装进入首页。

    创建项目

    • 源代码编译发布工程

      源代码发布工程即将源代码提交到git服务器,jenkins通过git拉取最新的源代码,并通过Dockerfile里的配置进行编译发布过程。然后通过Docker构建此镜像并运行到容器。

      可自行选择项目

      git clone https://gitee.com/ZYX315/QingShan.git

      Dockerfile用于编译镜像

      默认的Dockerfile是有帮我们进行代码编译并发布动作的。所以默认的Dockerfile文件是适合和代码一起提交到服务器然后使用Docker进行构建镜像。

      Dockerfile 文件需在根目录文件目录中

    • 将代码提交到gitee中

      • 将克隆下来的代码提交到自己gitee中
    • 在文件{根目录}\.git\config中修改提交的仓库

    配置Jenkins

    • 新建任务 选择第一个

    • 在源代码管理中使用git

      • 使用你的代码仓库
    • 我当前项目地址为:https://gitee.com/ZYX315/QingShan.git

    • 构建触发器

      • 轮询 SCM

      2分钟访问gitee.com是否有提交信息

      H/2 * * * *

    • 构建环境

      勾上Delete workspace before build starts

    • 构建

      • 选择执行shell
      #!/bin/bash
      # 获取短版本号
      GITHASH=`git rev-parse --short HEAD`
      docker stop qs.core.webapi
      docker rm qs.core.webapi
      docker images | grep "qs.core.webapi" | awk '{print $1":"$2}' | xargs docker rmi
      echo ---------------Building Docker Image...------------------
      docker build -t qs.core.webapi:$GITHASH .
      docker tag qs.core.webapi:$GITHASH qs.core.webapi:latest
      echo ---------------Launching Container...------------------
      docker run --name qs.core.webapi -p 9999:80 -d qs.core.webapi:latest 
      

      如果无法连接mysql需要添加这段话
      docker network connect my_net qs.core.webapi
      根据自己的项目把qs.core.webapi替换成自己的

      具体可参考Jenkins+Docker实现自动化部署

无法连接mysql

bridge桥接模式

posted @ 2021-04-17 16:50  青杉  阅读(360)  评论(0编辑  收藏  举报