Docker+Jenkins+Gogs 自动构建.Net Core

Docker+Jenkins+Gogs 自动构建.Net Core


引言

jenkins+gags 全部采用Docker安装,通过jenkins插件ssh调用外部Docker构建

主要实现功能:

git代码提交至Gogs,Jenkins自动构建至Docker

必要条件

1.Centos 7

2.Docker(题主18.06.1-ce)

3.Dot Net Core(2.1.4 ) .Net Core世界第一??不接受反驳?? ??


  1. 安装Jinkins

    镜像传送门 https://hub.docker.com/r/jenkins/jenkins/

    1.拉取jenkins

    docker pull jenkins/jenkins

    2.启动Docker容器

    #新建文件夹
    mkdir /var/jenkins
    
    #赋予权限
    chmod 777 /var/jenkins
    docker run -p 8080:8080 -p 50000:50000 -d  -v /var/jenkins:/var/jenkins_home --name myjenkins  jenkins/jenkins

    3.打开浏览器配置jenkins

    http://xxxx:8080 (8080对应上面映射的本地端口)

    4.查看管理员密码

    docker logs myjenkins
    或
    进入myjenkins容器
    docker exec -it myjenkins bash
    输入上图红色路径
    cat xxxxx 复制密码输入

    5.安装推荐插件 (等待安装完成)

    6.配置管理员密码

    7.安装完成

    8.安装Publish Over SSH

    进入系统管理-》插件管理-》可选插件 搜索Publish Over SSH 直接安装

    9.配置Publish Over SSH

    进入系统管理-》系统设置 找到Publish Over SSH

  2. 安装Gogs(此步骤可忽略,可以gitlab或者github、svn)

    镜像传送门 https://hub.docker.com/r/jenkins/jenkins/

    1.拉取Gogs

    docker pull gogs/gogs

    2.启动Docker容器

    #新建文件夹
    mkdir -p /var/gogs
    
    #赋予权限
    chmod 777 /var/gogs
    
    docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs

    3.打开浏览器配置gogs

    http://xxxx:10080 (10080对应上面映射的本地端口)

  3. 创建.Net Core 项目并上传至gogs git

    dotnet new mvc --name helloCore

    进入项目目录上传至git

    # git init

    # git add .

    # git commint -m ”提交“

    # git remote add origin {远程仓库地址}
    # git push -u origin master

在项目根目录配置DockerFile

```
FROM microsoft/aspnetcore-build as build-env
WORKDIR /code
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out

FROM microsoft/aspnetcore
WORKDIR /app
COPY --from=build-env /code/out ./

EXPOSE 80
ENTRYPOINT [ "dotnet", "helloCore.dll" ]
```

在项目根目录配置docker-compose.yml

```

version: ‘3‘

services:
  web:
    build: .
    container_name: ‘helloCore‘
    ports:
      - ‘8888:80‘

```
  1. 配置jenkins任务

    1.新建自由任务

2.配置git或者svn

3.添加构建步骤

#代码如下
docker stop helloCore; #停止已存在的容器
docker rm helloCore; #删除容器
cd /var/jenkins/workspace/helloCore; #进入jenkins拉取目录
pwd;
docker-compose up --build -d;#执行docker-compose构建
docker images;

4.一键构建

5.查看构建控制台

如果构建有错误,需按控制台错误修复

6.预览

致此

原文地址:https://www.cnblogs.com/yuefengkai/p/9691720.html

时间: 2024-08-30 09:42:25

Docker+Jenkins+Gogs 自动构建.Net Core的相关文章

基于Jenkins的自动构建系统开发_android总结

持续集成相关理论 1.1 极限编程的概述 1.1.1 极限编程的产生 2001年,为了解决许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作.响应变化能力的价值观和原则,他们称自己为敏捷联盟.敏捷开发过程的方法很多,主要有:SCRUM,Crystal,特征驱动软件开发(Feature Driven Development,简称FDD),自适应软件开发(Adaptive Software Development,简称ASD),以及最重要的极限编程(

Docker——Jenkins + Git + Registry构建自动化持续集成环境(CI/CD)

前言 在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署.交付(CD). 本文基于Jenkins+Docker+Git\Svn实现一套CI自动化发布流程,同时支持撤回. 一.发布流程设计 工作流程: 开发人员提交代码到Git或Svn版本仓库: Jenkins人工/定时触发项目构建: Jenkins拉取代码.代码编码.打包镜像.推送到镜像仓库: Jenkins在Docker主机创建容器并发布. 二.环境设计 1.

Jenkins里自动构建任务之---日程表设置

用jenkins构建任务时可以选择怎么去触发任务,这里讲下跟代码的build无关的固定时间触发的一些语法. 一.构建任务---构建触发器---勾选Poll SCM 这里一行可以设置5个参数(从左到右): 第一个是代表分钟 (0~59) H 表示随机 举例:12 * 每个小时的第12分钟都构建一次: H/5 * 每隔5分钟构建一次 H(1~23) 每个小时里的 1到23分钟的随机一个点触发 第二个是代表小时(0~23) 举例:H 6-18/2 * 上午6点到下午六点期间的每隔2个小时 构建一次 H

Dockerfile 构建后端springboot应用并用shell脚本实现jenkins自动构建

Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zh*****eng "z*******ch.cn" ENV LANG en_US.UTF-8 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone WORKDIR /home RUN mkdir JDK COPY jdk-8u

Dockerfile 构建后端tomcat应用并用shell脚本实现jenkins自动构建

Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zhaoweifeng "zh******tech.cn" ENV LANG en_US.UTF-8 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone WORKDIR /home RUN mkdir JDK COPY jdk

Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)

Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins.Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline. 对于单个项目来说,使用这样的Pipeline来构建能够满足绝大部分需求,但是这样做也有很多缺陷,包括: 多个项目的Pipeline打包脚本不能公用,导致一个项目写一份脚本,维护比较麻烦.Jenkins提供了一个更优雅的管理Pipeline脚本的方式,在配置项目Pipeline的时候

Jenkins pipeline自动化构建审批功能

Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins.Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline. 对于单个项目来说,使用这样的Pipeline来构建能够满足绝大部分需求,但是这样做也有很多缺陷,包括: 多个项目的Pipeline打包脚本不能公用,导致一个项目写一份脚本,维护比较麻烦.Jenkins提供了一个更优雅的管理Pipeline脚本的方式,在配置项目Pipeline的时候

gitlab+jenkins+maven+docker持续集成(三)——自动构建

具体原理图,如下,构建项目配置,这里略过,我们直接配置gitlab的自动构建 通过webhook可以实现自动构建,当然jenkins的强大之处在于插件,我们先安装插件 Jenkins-->插件管理 Gitlab Hook Plugin GitLab Plugin 安装后,就可以开始 了 在项目--配置--构建触发器 选择, Build when a change is pushed to GitLab 这样我们就得到了URL和一串Secret token 然后在gitlab配置webhook ,

使用jenkins自动构建docker容器范例

1.登录Jenkins,新建一个自由风格的软件项目. 2.源码管理选择git,并添加Repository URL.Credentials 3.构建选择 Execute Shell,命令如下: docker stop front_dev || true; docker rm front_dev || true; docker build -t front_dev .; docker run --name front_dev -p 10080:80 -d front_dev; 这里有几个注意点: d