日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

边缘化搭建DotNet Core 2.1 自动化构建和部署环境

發(fā)布時(shí)間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 边缘化搭建DotNet Core 2.1 自动化构建和部署环境 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫在前面

? ? ? ? 寫這篇文章的緣由是由于筆者的對(duì)新興技術(shù)方向有所追求,但個(gè)人資產(chǎn)有限,只能容許購買一臺(tái)阿里云低配1核2G服務(wù)器。服務(wù)器上搭建了?Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自動(dòng)化發(fā)布和部署?環(huán)境后犧牲了大部分性能。造成了一個(gè)基于angular編寫的前端應(yīng)用無法自動(dòng)構(gòu)建,構(gòu)建時(shí)一直出錯(cuò),通過錯(cuò)誤信息各種搜索并無任何結(jié)果。經(jīng)過反反復(fù)復(fù)的的試驗(yàn),用一臺(tái)1核1G的Debain虛擬機(jī)去手動(dòng)構(gòu)建并成功,最后經(jīng)過排查,確定是因?yàn)榛贘ava運(yùn)行時(shí)的Jenkins對(duì)內(nèi)存造成了一個(gè)巨大的占用。無奈之舉,因?yàn)楦F,導(dǎo)致不能升級(jí)服務(wù)器,但又想享受自動(dòng)構(gòu)建帶來的快感,只好另辟蹊徑,將Jenkins這個(gè)自動(dòng)化構(gòu)建和部署服務(wù)進(jìn)行邊緣化,以便去享受自動(dòng)化構(gòu)建和部署帶來的快感。本文章考慮篇幅問題分為上下兩篇。

先決條件

? ? ? ? 一塊根據(jù)教程安裝Debain系統(tǒng)的樹莓派2B+ (低于2B+型號(hào)的樹莓派性能沒經(jīng)過試驗(yàn),讀者可以嘗試)

樹莓派安裝Docker CE

? ? ? ??本文已根據(jù)教程安裝Debain系統(tǒng),接下來安裝的Docker的操作過程都是基于Debain系統(tǒng),若讀者的樹莓派安裝的是其他版本的系統(tǒng),可另閱讀Docker官方提供的安裝操作說明,本文就不提供其他系統(tǒng)版本的操作步驟了。

設(shè)置Docker源倉庫

? ? ? ? 1、更新?apt?包索引:

sudo apt-get update

? ? ? ? 2、安裝包

sudo apt-get -y install \apt-transport-https \ca-certificates \curl \gnupg2 \software-properties-common

? ? ? ?3、添加Docker的官方GPG密鑰:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -$ sudo apt-key fingerprint 0EBFCD88

? ? ? ?4、設(shè)置穩(wěn)定的Docker源倉庫

echo "deb [arch=armhf] https://download.docker.com/linux/debian \$(lsb_release -cs) stable" | \sudo tee /etc/apt/sources.list.d/docker.list

安裝Docker CE

? ? ? ?1、更新?apt?包索引:

sudo apt-get update

? ? ? ?2、安裝最新版本的Docker CE

sudo apt-get install docker-ce

? ? ? ?3、運(yùn)行Hello World 測(cè)試

sudo docker run armhf/hello-world

構(gòu)建鏡像

? ? ? ?因?yàn)闃漭杀旧淼腃PU架構(gòu)是ARM,博客園存在大量基于docker搭建Jenkins環(huán)境的教程,所依賴官方的鏡像都是基于x86架構(gòu)的CPU構(gòu)建的,所以我們需要重新根據(jù)ARM架構(gòu)的CPU去構(gòu)建一個(gè)可以運(yùn)行的Jenkins鏡像。并通過通過二次自定義構(gòu)建的方式,修改鏡像本身的配置信息。

  Jenkins官方在Docker Hub上面的鏡像是沒有ARM版本的,如果直接使用官方在Dokcer Hub上的鏡像直接自定義構(gòu)建會(huì)出現(xiàn)錯(cuò)誤。筆者在GitHub上找到一個(gè)Jenkins for Docker on Raspberry Pi的項(xiàng)目,里面包含構(gòu)建Jenkins的Dockerfile。經(jīng)過筆者的反復(fù)驗(yàn)證,排除網(wǎng)路環(huán)境,設(shè)備原因,確信這個(gè)項(xiàng)目的Dockerfile是存在問題的。筆者到這里曾經(jīng)想過放棄,但是既然都這么窮,又沒有錢買新的云服務(wù),只好繼續(xù)硬著頭皮往下研究出現(xiàn)錯(cuò)誤的原因。最后經(jīng)過不斷的試驗(yàn),成功解決了這個(gè)問題,隨后筆者Fork這個(gè)項(xiàng)目修復(fù)問題并提交到GitHub。如果真正嘗試構(gòu)建ARM版本失敗的讀者,看了這篇文章之后,就少走彎路了。項(xiàng)目GitHub地址:https://github.com/Loongle/rpi-jenkins。

構(gòu)建Jenkins ARM鏡像

? ? ? 1、克隆GitHub項(xiàng)目:

git clone https://github.com/Loongle/rpi-jenkins

? ? ? 2、進(jìn)入項(xiàng)目并開始構(gòu)建:

cd rpi-jenkins sudo docker build . -t jenkins

構(gòu)建自定義鏡像

? ? ? ?單純的直接構(gòu)建Jenkins并不能符合本文的主題,現(xiàn)在我們需要通過自定義Dockerfile來擴(kuò)充我們?cè)镜腏enkins環(huán)境設(shè)置。當(dāng)然,如果直接修改筆者GitHub項(xiàng)目里的Dockerfile進(jìn)行構(gòu)建,那么這一步也是可以忽略的。見仁見智,看讀者喜歡怎么方便怎么來,喜歡怎么折騰就怎么折騰,此處構(gòu)建沒有固定的操作方式,只要能確保樹莓派能運(yùn)行Jenkins就Ok啦。

? ? ? ?1、新建Dockerfile:

cd ~$ sudo nano Dockerfile

? ? ? ?2、查看docker組id:

cat /etc/group

? ? ? ?3、在Dockerfile插入如下代碼后,執(zhí)行保存:

FROM jenkins #可將 jenkins 替換 loongle/rpi-jenkins:latest 以解決自己構(gòu)建 Jenkins 鏡像速度慢的問題 USER rootARG dockerGid = 996 #填寫 /etc/group 下查到的 id#切換阿里云加速 RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \&& echo '' > /etc/apt/sources.list \&& echo '' > /etc/apt/raspi.list \&& echo "deb https://mirrors.aliyun.com/raspbian/raspbian/ stretch main crontrib non-free rpi" > /etc/apt/sources.list \&& echo "deb-src https://mirrors.aliyun.com/raspbian/raspbian/ stretch main crontrib non-free rpi" > /etc/apt/sources.list \&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ jessie main" >> /etc/apt/sources.list.d/raspi.list#安裝依賴關(guān)系 RUN apt-get install \apt-transport-https \ca-certificates \curl \gnupg2 \software-properties-common#安裝 docker-compose RUN wget https://bootstrap.pypa.io/get-pip.py \&& python get-pip.py \&& pip install docker-compose RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group#修改時(shí)區(qū) RUN rm -rf /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone

? ? ? ?4、自定義Dockerfile執(zhí)行構(gòu)建:

sudo docker build . -t auto-jenkins

? ? ? ?5、等待構(gòu)建完成后,啟動(dòng) Jenkins 即可:

sudo docker run --name=jenkins --restart=always --add-host master:192.168.6.200 -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker -v /var/jenkins_home:/usr/local/jenkins/ -d auto-jenkins

寫在后面

? ? ? ?至此,我們已經(jīng)成功在樹莓派上運(yùn)行 Jenkins ,筆者將在下一篇中講述從樹莓派上的Jenkins構(gòu)建項(xiàng)目并發(fā)布到云服務(wù)器上的Docker環(huán)境中。希望正在屏幕上閱讀本文的你,能順利在樹莓派上運(yùn)行你的Jenkins 環(huán)境。構(gòu)建途中出現(xiàn)任何疑問,歡迎在評(píng)論區(qū)中留言。

總結(jié)

以上是生活随笔為你收集整理的边缘化搭建DotNet Core 2.1 自动化构建和部署环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。