国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

gitlab-ci相關(guān)部署踩坑及要點(diǎn)記錄

這篇具有很好參考價(jià)值的文章主要介紹了gitlab-ci相關(guān)部署踩坑及要點(diǎn)記錄。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

最近在搞cicd相關(guān)的事情,在這個(gè)過程中遇到了一些疑惑,順便記錄下來(lái),如果對(duì)正在有相同迷惑的同學(xué)有幫助的話,也是一件很好的事情。

準(zhǔn)備工作:

  1. 安裝gitlab,這個(gè)安裝網(wǎng)上太多了,可以使用二進(jìn)制的方式安裝,也可以使用docker直接運(yùn)行。
  2. 安裝gitlab-runner,這個(gè)主要就是一個(gè)token和url的使用,一定要正確,還有與gitlab的版本對(duì)應(yīng)也要注意一下,當(dāng)然這個(gè)也是可以使用二進(jìn)制的方式和直接使用docker運(yùn)行的方式。
  3. docker安裝,應(yīng)為我是用的docker運(yùn)行的gitlab-runner,而且在構(gòu)建的過程中,也是用的golang的docker鏡像進(jìn)行打包的。

問題及注意點(diǎn):

問題一:遇到了一個(gè)問題,構(gòu)建速度非常慢,因?yàn)楫?dāng)時(shí)的項(xiàng)目不大,需要下載的依賴也不多,所以這是為啥?

解答:因?yàn)樵趃itlab-ci.yml文件中用到了artifacts,而這讓job產(chǎn)物(可執(zhí)行程序)上傳到gitlab,而我們?cè)趃itlab-runner register的時(shí)候,url填的是一個(gè)公網(wǎng)地址,并且runner機(jī)器的外網(wǎng)帶寬只有1M,所以很慢,后面將url換成了內(nèi)網(wǎng)地址,直接起飛,url的更換是直接修改config.toml文件中的url配置,然后運(yùn)行g(shù)itlab-runner restart即可。

問題二:部署的過程中,碰到permission denied這樣的報(bào)錯(cuò)?

解答:使用root用戶運(yùn)行g(shù)itlab-runner即可,不過這個(gè)要注意gitlab.yml中的script,不要誤操作,修改gitlab-runner運(yùn)行用戶的命令:gitlab-runner uninstall &&?gitlab-runner install --user root,如果不行的話,再gitlab-runner restart即可,如果用到寶塔面板的話,寶塔也用root用戶運(yùn)行項(xiàng)目。

問題三:因?yàn)椴渴鸬氖莋olang的項(xiàng)目,所以不能每次部署的時(shí)候都去下載依賴,這樣不科學(xué),所以有什么辦法可以解決這個(gè)問題呢:

解答:使用gitlab-ci都cache,具體配置如下:

cache:
  key: ${CI_JOB_NAME}
  paths:
    - .mod_cache/

其中key是防止cache被覆蓋,paths是要緩存的目錄,緩存會(huì)以cache.zip的名字自動(dòng)存儲(chǔ)到宿主機(jī)上,下次這個(gè)job運(yùn)行的時(shí)候,會(huì)先解壓cache.zip,然后再去編譯,這樣對(duì)于有依賴的項(xiàng)目,速度會(huì)有一定的提升。

記錄:

  1. when: manual 的作用,是該job運(yùn)行的時(shí)候,必須要手動(dòng)去點(diǎn)運(yùn)行才會(huì)運(yùn)行,可以用在部署到線上環(huán)境時(shí)的最后一道防線。
  2. when: on_success 是默認(rèn)加上的,如果rules中的if條件滿足的話,會(huì)自動(dòng)加上。
  3. when: never 的意思是不會(huì)將這個(gè)job加入到流水線中,即該job不會(huì)執(zhí)行。
  4. 可以通過gitlab-runner的tag去指定在哪臺(tái)機(jī)器上執(zhí)行流水線的job,在實(shí)際操作中,可以將打包、構(gòu)建機(jī)器打上一個(gè)tag,然后測(cè)試環(huán)境、線上環(huán)境也打上對(duì)應(yīng)的tag,這樣在job執(zhí)行的時(shí)候,如果需要區(qū)分部署到不同的環(huán)境,就可以通過tag,來(lái)讓job在對(duì)應(yīng)的環(huán)境機(jī)器上運(yùn)行。
  5. 第4個(gè)點(diǎn)說(shuō)的,通過tag區(qū)分環(huán)境,也可以直接在script中直接使用ssh的方式去進(jìn)行部署到對(duì)應(yīng)的環(huán)境。
  6. 打包階段的image,可以直接指定版本,不需要用latest,因?yàn)橛胠atest的話,每次都會(huì)去判斷一下本地latest鏡像與hub中的是否一樣,這樣也會(huì)提升一點(diǎn)速度。

最后貼一下,我使用的gitlab-ci.yml文件,僅供參考:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-814107.html

stages:          # List of stages for jobs, and their order of execution
  - build
  - deploy

build-ad-job:       # This job runs in the build stage, which runs first.
  stage: build
  image: golang:1.21.6
  tags:
    - ytweb
  script:
    - echo "Compiling the code..."
    - go env -w GOMODCACHE=$(pwd)/.mod_cache/ GOPROXY=https://goproxy.cn,direct
    - make all
    - echo "Compile complete."
  cache:
    key: ${CI_JOB_NAME}
    paths:
      - .mod_cache/
  rules:
    - if: '$CI_COMMIT_BRANCH == "dev" || $CI_COMMIT_BRANCH == "main"'
  artifacts:
    paths:
      - bin/
      - configs/
      - ad.json
    expire_in: 1 day

deploy-ad-dev-job:
  stage: deploy
  tags:
    - testing
  rules:
    - if: '$CI_COMMIT_BRANCH == "dev"'
#      when: manual
  script:
    - echo "Deploying dev application..."
    - bash deploy.sh
    - echo "Application dev successfully deployed."

deploy-ad-prod-job:
  stage: deploy
  tags:
    - online
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
      when: manual
  script:
    - echo "Deploying prod application..."
    - bash deploy.sh
    - echo "Application prod successfully deployed."

到了這里,關(guān)于gitlab-ci相關(guān)部署踩坑及要點(diǎn)記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • gitlab-ci.yml 關(guān)鍵字參考 (FREE)

    本文檔列出了 GitLab? .gitlab-ci.yml ?文件的配置選項(xiàng)。 有關(guān) GitLab CI/CD 的快速介紹,請(qǐng)遵循快速入門指南。 有關(guān)示例集合,請(qǐng)參閱 GitLab CI/CD 示例。 要查看企業(yè)使用的大型? .gitlab-ci.yml ?文件,請(qǐng)參閱gitlab的.gitlab-ci.yml文件。 當(dāng)在編輯您的? .gitlab-ci.yml ?文件時(shí),可以使用?CI

    2024年02月09日
    瀏覽(19)
  • DevOps系列文章 之 SpringBoot整合GitLab-CI實(shí)現(xiàn)持續(xù)集成

    DevOps系列文章 之 SpringBoot整合GitLab-CI實(shí)現(xiàn)持續(xù)集成

    在企業(yè)開發(fā)過程中,我們開發(fā)的功能或者是修復(fù)的BUG都需要部署到服務(wù)器上去,而這部分部署操作又是重復(fù)且繁瑣的工作,GitLab-CI 持續(xù)集成為我們解決了這一痛點(diǎn),將重復(fù)部署的工作自動(dòng)化,大大的節(jié)省了程序員們的寶貴時(shí)間。本文詳細(xì)講述了 GitLab-CI 持續(xù)集成的安裝、部署

    2024年02月13日
    瀏覽(23)
  • gitlab-ci.yml關(guān)鍵字(五)tags 、only 、when

    gitlab-ci.yml關(guān)鍵字(五)tags 、only 、when

    使用Tags用于選擇Runner的標(biāo)簽列表 我們?cè)趧?chuàng)建Runner 時(shí)可以給該Runner打上特定的標(biāo)簽,那后續(xù)流水線中的job如果需要使用特定標(biāo)簽的Runner執(zhí)行時(shí),就需要使用tags來(lái)標(biāo)記 比如這里有兩個(gè)標(biāo)簽的Runner 也可以對(duì)當(dāng)前的runner進(jìn)行一些配置上的設(shè)置 使用only / except 來(lái)控制何時(shí)創(chuàng)建

    2024年02月03日
    瀏覽(43)
  • error: unable to unlink old ‘.gitlab-ci.yml‘: Permission denied

    #gitlab-runner 執(zhí)行代碼git pull origin xxx 更新時(shí)候報(bào) error: unable to unlink old ‘.gitlab-ci.yml’: Permission denied 問題環(huán)境:centos 部署gitlab-runner 執(zhí)行腳本方式 選的shell 產(chǎn)生問題的原因:gitlab-runner程序進(jìn)程占用鎖定了.gitlab-ci.yml 解決方法:gitlab-runner stop 停止服務(wù)后,切換到 執(zhí)行g(shù)itlab-runn

    2024年02月10日
    瀏覽(23)
  • docker部署gitlab CI/CD (一)第一篇:部署gitlab及漢化

    docker部署gitlab CI/CD (一)第一篇:部署gitlab及漢化

    網(wǎng)上很多類似教程,但多少有點(diǎn)夾帶私貨,有的竟然拉取的第三方鏡像,而且很多都要修改配置文件,完全不知道是為什么,于是結(jié)合其他人的博客和官方文檔, 知其然也要知其所以然,于2023年4月17日寫下這篇。 官方文檔: https://docs.gitlab.com/ee/install/docker.html 主要參考博客

    2023年04月17日
    瀏覽(33)
  • 使用gitlab 自帶 CI/CD 構(gòu)建部署項(xiàng)目

    使用gitlab 自帶 CI/CD 構(gòu)建部署項(xiàng)目

    這里我用的是橋接模式 橋接模式方便局域網(wǎng)內(nèi)的小伙伴一起使用 如果沒有這個(gè)打算可跳過這步 編輯網(wǎng)絡(luò) vi /etc/sysconfig/network-scripts/ifcfg-你的網(wǎng)絡(luò)名稱 修改如下內(nèi)容 這里我有句話要講, 這些信息配置完成后出現(xiàn)\\\"網(wǎng)絡(luò)不可達(dá)\\\" 需要把 BOOTPROTO 改為 dhcp 詳情可參考 處理網(wǎng)絡(luò)不可達(dá)

    2024年02月12日
    瀏覽(27)
  • Gitlab CI/CD 自動(dòng)化打包部署前端(vue)項(xiàng)目

    Gitlab CI/CD 自動(dòng)化打包部署前端(vue)項(xiàng)目

    一、虛擬機(jī)安裝 1.vmware下載 2.鏡像下載 3.Ubuntu 4.新建虛擬機(jī) 一直點(diǎn)下一步,直到點(diǎn)擊完成。 5.分配鏡像 二、Gitlab CI/CD 自動(dòng)化部署項(xiàng)目 1.配置GitLab CI/CD: 2.生成SSH密鑰對(duì): 如果尚未生成,請(qǐng)?jiān)诒镜貦C(jī)器上生成一個(gè)SSH密鑰對(duì): 3.將SSH私鑰添加到GitLab: 4.更新GitLab CI/CD配置: 5

    2024年03月13日
    瀏覽(15)
  • docker部署Jenkins(Jenkins+Gitlab+Maven實(shí)現(xiàn)CI/CD)

    docker部署Jenkins(Jenkins+Gitlab+Maven實(shí)現(xiàn)CI/CD)

    ?? ?? GitLab是一個(gè)用于倉(cāng)庫(kù)管理系統(tǒng)的開源項(xiàng)目,使用Git作為代碼管理工具,并在此基礎(chǔ)上搭建起來(lái)的Web服務(wù),可通過Web界面進(jìn)行訪問公開的或者私人項(xiàng)目。它擁有與Github類似的功能,能夠?yàn)g覽源代碼,管理缺陷和注釋。 ??????GitLab是由GitLabInc.開發(fā),使用MIT許可證的基于

    2024年02月03日
    瀏覽(32)
  • gitlab ci/cd+harbor+k8s實(shí)現(xiàn)一鍵部署(python項(xiàng)目)

    gitlab ci/cd+harbor+k8s實(shí)現(xiàn)一鍵部署(python項(xiàng)目)

    使用 kaniko 構(gòu)建 Docker 鏡像 如果倉(cāng)庫(kù)使用http

    2024年02月13日
    瀏覽(50)
  • [Docker實(shí)現(xiàn)測(cè)試部署CI/CD----相關(guān)服務(wù)器的安裝配置(1)]

    [Docker實(shí)現(xiàn)測(cè)試部署CI/CD----相關(guān)服務(wù)器的安裝配置(1)]

    CI,Continuous Integration,持續(xù)集成。即將持續(xù)不斷更新的代碼經(jīng)構(gòu)建、測(cè)試后也持續(xù)不斷的集成到項(xiàng)目主干分支。 CD,包含兩層含義:Continuous Delivery,持續(xù)交付,和 Continuous Deployment,持續(xù) 部署。 持續(xù)交付:是持續(xù)集成的后續(xù)步驟,持續(xù)頻繁地將軟件的新版本交付到類生產(chǎn)環(huán)境

    2024年02月14日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包