1. 程式人生 > >ASP.NET Core + Docker +Jenkins 實現持續整合

ASP.NET Core + Docker +Jenkins 實現持續整合

本文為 docker-compose 方式,但自從 Visual Studio 2017 15.8 版本更新以後,通過VS新增的 Docker 支援預設就只有 Dockerfile 了,所以請參見這篇文章:https://www.cnblogs.com/stulzq/p/9201830.html

準備

我們需要在容器內使用docker-compose,所以我們需要先進容器安裝docker-compose。

通過命令進入容器:

docker exec -it jenkins /bin/bash

1.新建一個ASP.NET Core MVC應用程式:

需要勾選Docker支援

2.將其上傳到git:

3.建立Jenkins任務

(1)選擇“新建任務”,輸入任務名稱,選擇“自由風格專案”,然後點選確定:

(2)選擇“原始碼管理”,填入我們的git地址

輸入H/2 * * * *設定兩分鐘拉取一次

(3)構建環境

勾上 Delete workspace before build start 是設定構建前刪除工作區

勾上 Abort the build if it's stuck 是設定構建的超時時間,如果構建使用的時間超過設定的時間,那麼就認為這次的構建是失敗的。筆者這裡超時設定的是10分鐘

(4)增加一個Execute Shell 指令碼,並填寫以下指令碼內容


#!/bin/bash
# 獲取短版本號

GITHASH=`git rev-parse --short HEAD`
echo ---------------Remove-Orphans------------------
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml  -p webapplication6 down --rmi local --remove-orphans
echo ------------------Config-----------------------
docker-compose -f ./docker-compose.ci.build.yml -p webapplication6 config
echo ------------------Build------------------------
docker-compose -f ./docker-compose.ci.build.yml -p webapplication6 up --build
echo ---------------Publishing...------------------
docker-compose -f "./docker-compose.yml" -f "./docker-compose.override.yml"  -p webapplication6 up -d --build

echo ---------------Clear-Images...------------------
clearImagesList=$(docker images -f "dangling=true" -q)
if [ ! -n "$clearImagesList" ]; then
  echo "No need to clean up images."
else
  docker rmi $(docker images -f "dangling=true" -q)
  echo "clear success."
fi
echo ---------------Clear-Containers...------------------
docker rm webapplication6_ci-build_1

2018.4.24 加入映象和容器清理命令,所以上面的指令碼和下圖不一樣,以上面的shell指令碼為準

應用儲存,回到專案介面上。點選立即構建進行部署工作

我們可以檢視控制檯輸出:

待構建成功以後訪問url(你的ip:埠)試試效果。

不知道埠的可以通過命令docker ps檢視

參考文章:

相關推薦

ASP.NET Core + Docker +Jenkins 實現持續整合

本文為 docker-compose 方式,但自從 Visual Studio 2017 15.8 版本更新以後,通過VS新增的 Docker 支援預設就只有 Dockerfile 了,所以請參見這篇文章:https://www.cnblogs.com/stulzq/p/9201830.html 準備 我

ASP.NET Core + Docker +Jenkins 實現持續集成

before hash net stuck 超時時間 ref shell 腳本 conf cut 1.新建一個ASP.NET Core MVC應用程序: 2.將其上傳到git: 3.建立Jenkins任務 (1)選擇“新建任務”,輸入任務名稱,選擇“自由風格項目”,然後

ASP.NET Core & Docker & Jenkins 零基礎持續整合

一.本系列教程說明 gitserver採用的:Gogs 持續整合工具採用:Jenkins 容器:Docker 二.為什麼不用gitlab? 沒有采用gitlab,因為gitlab比較吃配置,至少得2核4G的配置。採用go語言開發的gogs來代替,搭建方便(不到10分鐘就能安裝完成),資源消耗低,功能也比較強大

.NET Core部署到linux(CentOS)最全解決方案,入魔篇(使用Docker+Jenkins實現持續整合、自動化部署)

通過前面三篇: [.NET Core部署到linux(CentOS)最全解決方案,常規篇](http://blog.rdiframework.net/article/244) [.NET Core部署到linux(CentOS)最全解決方案,進階篇(Supervisor+Nginx)](http://bl

Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(二):部署

前面又是廢話 我之前寫過: Asp.Net Core 程式部署到Linux(centos)生產環境(一):普通部署 Asp.Net Core 程式部署到Linux(centos)生產環境(二):docker部署 大家可能會有疑問,分散式環境當中的部署還是跟我們在windows一樣,一臺機一臺機的去

Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(一):Jenkins安裝

寫在前面 其實園子裡很多大佬都寫過,我也是一個搬運工很多東西不是原創的,不過還是想把自己安裝的過程,記錄下來如果能幫到大家的忙,也是一件功德無量的事; 執行環境 centos:7.2 cpu:1核 2G記憶體 1M頻寬 其實用的騰訊雲 安裝jenkins 這裡的jenkins就不從docker

如何在ASP.NET Core應用中實現與第三方IoC/DI框架的整合

我們知道整個ASP.NET Core建立在以ServiceCollection/ServiceProvider為核心的DI框架上,它甚至提供了擴充套件點使我們可以與第三方DI框架進行整合。對此比較瞭解的讀者朋友應該很清楚,針對第三方DI框架的整合可以通過在定義Startup型別的ConfigureServic

Asp.net Core 使用Jenkins + Dockor 實現持續集成、自動化部署(四):發布與回滾

截圖 begin 更強 else https 分發 集成測試 block 執行 寫在前面 我們以前windows跑.net Framework程序的時候,發布,自己乖乖的替換程序;備份,也是自己一個一個的重命名備份;回滾,發布遇到問題的回滾更是不用說了;運維很是怕我們 這

[Asp.Net Core] - 使用 ViewComponents 實現分頁控件

world asi action span ring easyn eba orm clas 分頁控件(定義分頁參數) ~/ViewComponents/PaginationViewComponent.cs using HelloWorld.DataContext; u

ASP.NET Core 開源GitServer 實現自己的GitHub

date pes name spn isp des odin control validate ASP.NET Core 2.0 開源Git HTTP Server,實現類似 GitHub、GitLab。 GitHub:https://github.com/linezero

Asp.Net Core 2.0實現HttpResponse中繁切換

== sed 存儲 中文簡體 選擇 .net tin contains nts 隨筆背景:因為項目中有個簡單的功能是需要實現中文簡體到繁體的切換,數據庫中存儲的源數據都是中文簡體的,為了省事就想著通過HttpHeader的方式來控制Api返回對應的繁體數據。 實現方式:通過

[轉]使用jenkins實現持續整合

本文轉自:https://www.cnblogs.com/zishengY/p/7170656.html 一、jenkins 介紹   它是一個自動化的週期性的整合測試過程,從檢出程式碼、編譯構建、執行測試、結果記錄、測試統計等都是自動完成的,無需人工干預

ansible+gitlab+Jenkins實現持續整合

ansible簡介:   一、ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。   二、ansible是基於模組工作的,本身沒有批

Asp.Net Core 輕鬆學-實現跨平臺的自定義Json資料包

前言     在前後端分離的業務開發中,我們總是需要返回各種各樣的資料包格式,一個良好的 json 格式資料包是我們一貫奉行的原則,下面就利用 Json.Net 來做一個簡單具有跨平臺的序列化資料包實現類。 1. 應用 Json.Net 1.1 首先在專案中引用 NuGet 包 1

使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET機器學習模型

cat ports sed tar enc convert esp asp truct 本文將使用ML.NET創建機器學習分類模型,通過ASP.NET Core Web API公開它,將其打包到Docker容器中,並通過Azure Container Instances將其

ASP.NET Core Web API實現圖片下載

前端訪問下載圖片API下載圖片。 一、ASP.NET Core Web API程式碼 方案一: [Route("api/[controller]")] [ApiController

ASP.NET Core 專案實戰(持續更新~~~)

 一、前言   準備寫這個系列文章的設想開始於今年9月,毫無意外,期間又又又又拖了很長時間,文章主要是為了記錄自己學習使用 ASP.NET Core Web API 與 Vue 建立一個前後端分離的專案的整個過程。嗯,2018年快要結束了,應該能在 .NET Core 3.0 正式版和 Vue 3

jenkins實現持續整合

下載安裝 軟體版本需求:     JDK要求1.7以上,ant版本1.9系列都可以,jenkins版本2.33以上。jdk的安裝不再說了,下面只說一下ant和jenkins的安裝和配置:     ant是基於java的一款構建工具,通過配置build.xml,讓

ASP.NET Core框架揭祕(持續更新中…)

之前寫了一系列關於.NET Core/ASP.NET Core的文章,但是大都是針對RC版本。到了正式的RTM,很多地方都發生了改變,所以我會將之前釋出的文章針對正式版本的.NET Core 1.0進行改寫。除此之外,我還會撰寫一系列與此相關的文章,這些文章以ASP.NET Core為核心,我個人將它們分成三

Getting Started With ASP.NET Core & Docker

Containers — Docker: IntroductionNow, let’s move on to a brief explanation on what are the main purposes of using containers in software development.What i