docker CI操作演示分享(第四期)

引言

java項目:

1、將項目通過maven進行編譯打包

2、將文件上傳到指定的服務器中

3、將war包放到tomcat的目錄中

4、通過Dockerfile將tomcat和war包轉成一個鏡像,由docker-compose去運行容器

項目更新后:將上述流程再次的從頭到尾的執行一次

go項目:

1、將項目通過go build編譯成二進制執行文件打包(或者直接將項目代碼打包壓縮)

2、將文件上傳到指定的服務器中

3、解壓文件到指定目錄

4、通過Dockerfile將go build后的二進制文件轉成一個鏡像,由docker-compose去運行容器 項目更新后:將上述流程再次的從頭到尾的執行一次

CI介紹和實現

CI (continuous intergration) 持續集成

持續集成:編寫代碼時,完成一個功能后,立即提交代碼到git倉庫中,將項目重新構建并測試。

1、快速發現錯誤

2、阻止代碼偏離主分支

實現持續集成

  • 搭建gitlab服務器

1、創建一個全新的虛擬機,并且只是指定4G運行內存

2、安裝docker以及docker-compose

3、docker-compose.yml文件去安裝gitlab(下載和運行的時間比較長)

4、將ssh的默認端口22修改為60022 vim /etc/ssh/sshd_config 修改 port 22 --> 60022 systemctl restart sshd

docker-compose.yml文件

version: '2'
services:gitlab:image: 'gitlab/gitlab-ce:12.4.1-ce.0'restart: alwayscontainer_name: gitlabhostname: 'gitlab'environment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://47.119.16.196'nginx['enable'] = truenginx['redirect_http_to_https'] = truenginx['redirect_http_to_https_port'] = 80# 開啟 pages 功能pages_external_url 'http://47.119.16.196'gitlab_pages['inplace_chroot'] = truegitlab_rails['lfs_enabled'] = true# 設置時區為北京時間gitlab_rails['time_zone'] = 'PRC'gitlab_rails['gitlab_email_enabled'] = truegitlab_rails['gitlab_email_from'] = 'code@example.com'gitlab_rails['gitlab_email_display_name'] = 'code'gitlab_rails['gitlab_email_reply_to'] = 'code@example.com'gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = 'smtp.exmail.qq.com'gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = 'code@example.com'gitlab_rails['smtp_password'] = '******'gitlab_rails['smtp_domain'] = 'exmail.qq.com'gitlab_rails['smtp_authentication'] = 'login'gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = trueunicorn['worker_processes'] = 2unicorn['worker_timeout'] = 60sidekiq['concurrency'] = 4# 解決 GitLab 響應 Forbiddengitlab_rails['rack_attack_git_basic_auth'] = {'enabled' => true, 'ip_whitelist' => ["0.0.0.0"], 'maxretry' => 300, 'findtime' => 5, 'bantime' => 60}# 內存和CPU限制,worker_processes 配置聲明使用2核CPUmem_limit: 5500mcpu_shares: 200 #2核ports:- '443:443'- '80:80'- '22:22'volumes:# 掛載宿主機目錄可以根據實際情況掛載- '/opt/gitlab-docker/config:/etc/gitlab'- '/opt/gitlab-docker/logs:/var/log/gitlab'- '/opt/gitlab-docker/data:/var/opt/gitlab'- '/etc/localtime:/etc/localtime'

執行命令

docker-compose up -d
  • 搭建gitlab-runner

步驟:

1、環境準備

創建目錄:/opt/gitlab-runner

配置daemon.json,私有化倉庫

{"registry-mirrors": ["https://registry.docker-cn.com"],"insecure-registries": ["39.108.227.113:5000"]
}

復制這個daemon.json 到/etc/docker/,并執行下面命令?

systemctl daemon-reload
systemctl restart docker

?2、在/opt/gitlab-runner目錄下創建一個docker-compose.yml文件

version: 'v2.2.2'
services:gitlab-runner:image: gitlab/gitlab-runnerrestart: alwayscontainer_name: gitlab-runnerprivileged: truevolumes:- ./config:/etc/gitlab-runner- /var/run/docker.sock:/var/run/docker.sock

然后執行命令

sudo chown root:root /var/run/docker.sock

最后啟動容器

docker-compose up -d --build

3、添加容器權限

保證容器可以使用宿主機器的docker,執行下面命令

docker exec -it gitlab-runner usermod -aG root gitlab-runner

4、注冊Runner信息到gitlab

docker exec -it gitlab-runner gitlab-runner register#輸入gitlab地址
Please enter the gitlab-ci coordinator URL
http://106.55.229.11/#輸入gitlab token
Please enter the gitlab-ci token for this runner:
xXapfgMsA_6eG5YUzTKb#輸入runner 說明,這里取個名字就可以了#設置tag,可以用于指定在構建規定的tag時觸發ci
Please enter the gitlab-ci tags for this runner : 
deploy。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919505.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919505.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919505.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubernetes 的 YAML 配置文件-kind

Kubernetes的YAML配置文件–kind 在 Kubernetes 的 YAML 配置文件中,kind: 字段用于指定你要創建的資源對象類型。Kubernetes 支持多種資源類型,它們可以分為以下幾大類: 一、核心資源類型(常用) 1. Pod 描述:最小的部署單元,包含一個或多個容器。 特點:臨時性(Pod …

Tumblr長文運營:亞矩陣云手機助力多賬號輪詢與關鍵詞布局系統

——基于硬件虛擬化與AI語義分析的垂直內容滲透方案?一、技術架構:長文運營的三大核心引擎??多賬號輪詢系統??虛擬設備集群?:基于ARM服務器虛擬化技術(如亞矩陣RK3588芯片),單臺物理服務器可模擬500獨立Tumblr客…

K8s命名空間:資源隔離與管理的核心

K8s 命名空間(Namespace)概念Kubernetes(K8s)中的命名空間是用于在集群內對資源進行邏輯隔離的機制,通過劃分不同的命名空間,可以將集群資源(如 Pod、Service、Deployment 等)分配到…

MTK Linux DRM分析(一)- DRM簡介

Linux的DRM(Direct Rendering Manager)驅動是內核中管理圖形硬件的核心子系統,旨在支持現代顯卡的復雜功能(如3D渲染、多圖層合成和硬件加速),同時解決傳統FB(Framebuffer)架構的局限…

數據挖掘筆記:點到線段的距離計算

1. 寫在前面 最近在搞一個"大曲率彎道"場景的數據挖掘,里面有個邏輯是給定自車的定位坐標和車道線的坐標點,根據點到線段的距離,去找到自車所在的車道中心線。 然后發現這個計算其實在很多場景中都是可以用到的,所以就…

C++篇(2)C++入門(下)

一、引用1.1 引用的概念和定義引用不是新定義一個變量,而是給已經存在的變量取別名,編譯器不會為引用變量開辟內存空間,它和它引用的變量共用一塊內存空間。類型& 引用別名 引用對象int a 10;int& b a; //b是a的引用1.2 引用的…

Windows 如何清理右鍵菜單?電腦桌面右鍵菜單里出現一個清理內存 怎么去掉?

RightMenuMgr是一款綠色小巧免費的右鍵菜單管理工具,簡體中文界面,很方便操作,可以幫助用戶輕松管理右鍵菜單,能夠重新定義傳統的右鍵,軟件體積小,功能強大,安全無毒,且使用免費&…

【力扣 Hot100】 刷題日記——雙指針的經典應用

D11 兩數之和 II - 輸入有序數組 LCR 006. 兩數之和 II - 輸入有序數組 - 力扣(LeetCode) 這道題目也是雙指針的一個典型應用,題目要求找出和為target的兩個數字的下標,并且告訴了有且僅有一對符合條件的數字。 而且題目已經給…

在一臺沒聯網的機器上,用ollama加載qwen3,14b

文章目錄 背景 去另一臺機器下載模型 使用docker部署ollama 后續 背景 項目甲方終于搞定了一臺T4,咱們的項目又可以正常推進了。 但是,高高興興地上去之后,發現,此機器竟不可以聯網~ 不過好在,前輩已經把docker裝好了。 竟然還有ollama的鏡像。 可以的,至少可以節省一…

Angular由一個bug說起之十八:伴隨框架升級而升級ESLint遇到的問題與思考

伴隨框架升級而升級ESLint遇到的問題與思考 對于eslint這個前端事實上的代碼檢查工具標準,大家可能是再熟悉不過了。幾乎是在編碼的時時刻刻都在和它接觸。在我們開發維護長達十年的項目中自然也是采用了ESLint,在從 AngularJS 一路到今天現代化的 Angu…

unfold 切圖像,圖形transformer的切割操作

import torch x torch.arange(8*12).view(1,1,8,12) mx.unfold(2, 4, 4) n m.unfold(3, 4, 4)輸入第一次切,切高度維度,但是切完做了轉置 ,得到(1,1,2,12,4)切寬度 得…

基于最小二乘支持向量機的數據回歸預測 LSSVM

一、作品詳細簡介 1.1附件文件夾程序代碼截圖 全部完整源代碼,請在個人首頁置頂文章查看: 學行庫小秘_CSDN博客?編輯https://blog.csdn.net/weixin_47760707?spm1000.2115.3001.5343 1.2各文件夾說明 1.2.1 main.m主函數文件 該MATLAB 代碼實現了…

Java虛擬機故障處理工具全指南

目錄 一、JVM故障處理工具概述 二、詳細工具解析 1. jps:虛擬機進程狀況工具 2. jstat:虛擬機統計信息監視工具 3. jinfo:Java配置信息工具 4. jmap:Java內存映像工具 5. jhat:堆轉儲快照分析工具 6. jstack&a…

【LeetCode熱題100道筆記+動畫】接雨水

題目描述 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 輸入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 輸出:6 解釋:上面是由數組 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水…

短劇小程序系統開發:構建影視娛樂新生態的基石

在移動互聯網的浪潮中,影視娛樂行業正經歷著深刻的變革。短劇,作為一種新興的內容形式,以其獨特的魅力和廣泛的受眾基礎,成為了行業發展的新亮點。而短劇小程序系統開發,則是構建影視娛樂新生態的基石,為行…

基于Pytochvideo訓練自己的的視頻分類模型

視頻分類模型簡介 ?X3D 系列模型 官方網站 https://github.com/facebookresearch/SlowFast ?提出論文? Facebook Research 的《X3D: Expanding Architectures for Efficient Video Recognition》 https://arxiv.org/pdf/2004.04730 原理 X3D 的設計思路受到機器學習中…

LidaRefer-v2論文速讀

研究背景 研究背景 3D視覺定位(3D Visual Grounding, VG)是一項旨在根據自然語言描述,在三維場景中精確定位出相應物體或區域的任務 。這項技術在人機交互領域至關重要,尤其是在自動駕駛、機器人技術和AR/VR等應用中,它…

邏輯移位與算術移位

根本的區別在于:它們如何對待符號位(最高位)。 一、邏輯移位 (Logical Shift) 無論左移、右移,空出的位永遠用 0 填充。主要針對無符號整數、快速乘除2的冪。 二、算術移位 (Arithmetic Shift) 左移用 0 填充、右移用符號位填充。…

內存對齊的使用和禁用

在 C 語言和 C 中,__attribute__((packed)) 是一種用于數據結構體的編譯器擴展屬性,這個屬性主要用于修改結構體的內存對齊行為。背景知識:結構體內存對齊在許多計算機架構中,編譯器會自動對數據進行對齊(alignment&am…

SpringBoot3后端項目介紹:mybig-event

mybig-event 項目簡介 mybig-event 是一個基于 Spring Boot 的事件管理系統,提供用戶管理、文章發布、分類管理、文件上傳等功能,采用現代化的 Java 技術棧構建,支持高效開發和部署。 倉庫鏈接:https://github.com/foorgange/mybi…