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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Angular gitlab持续集成之runner配置

發(fā)布時(shí)間:2025/3/8 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Angular gitlab持续集成之runner配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

gitlab持續(xù)集成

安裝Runner

正常安裝

sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 sudo chmod +x /usr/local/bin/gitlab-runner sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start image: node:8cache:paths:- node_modules/stages:- test- buildtest:stage: testscript:- npm install- ./node_modules/@angular/cli/bin/ng test --browsers PhantomJS --watch=falsebuild:stage: buildscript:- ./node_modules/@angular/cli/bin/ng build --prod

docker in docker 安裝

推薦使用此方式安裝runner。

  • pull鏡像

    sudo docker pull gitlab/gitlab-runner:latest
  • 創(chuàng)建容器運(yùn)行

    docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
  • 查看注冊token

    查看注冊需要的url和token

  • 注冊runner

    sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register

    執(zhí)行完上面命令后,會(huì)交互式的讓你輸入相關(guān)信息,如下操作:

    # 1、輸入上圖中的注冊URL Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://192.168.2.100:9799/# 2、輸入上圖中的注冊令牌 Please enter the gitlab-ci token for this runner: xxxxxxxxxx# 3、輸入描述 如 another runner Please enter the gitlab-ci description for this runner: [gitlab]:another runner# 4、輸入Runner的tag 多個(gè)的話逗號隔開 Please enter the gitlab-ci tags for this runner (comma separated): my-tag# 7、選擇執(zhí)行類型 輸入shell即可 Registering runner... succeeded runner=E7XAAAAA Please enter the executor: docker+machine, docker-ssh, parallels, shell, ssh, virtualbox, docker-ssh+machine, kubernetes, docker: docker

    接下來選擇鏡像根據(jù)自己的需求,我所使用的是node:8.9.4

  • 注冊成功后,在gitlab項(xiàng)目中即可查看gitlab-runner

  • 修改gitlab-runner容器內(nèi)的配置

    進(jìn)入容器內(nèi)部

    sudo docker exec -it gitlab-runner /bin/bash

    然后編輯gitlab-runner配置文件

    nano /etc/gitlab-runner/config.toml

    修改如下

    concurrent = 1 check_interval = 0[session_server]session_timeout = 1800[[runners]]name = "Angular build ^ ^ test and deploy."clone_url = "http://192.168.2.100:9799/" # 增加此段,否則默認(rèn)不帶端口,會(huì)出現(xiàn)無法克隆項(xiàng)目的情況url = "http://192.168.2.100:9799/"token = "ea6a17d35baf89d3d7ddab5f026428"executor = "shell"[runners.cache][runners.cache.s3][runners.cache.gcs]

    查看runner

    gitlab-runner list
  • 編寫.gitlab-ci.yml然后push

    test:script:- ls


  • 增加部署runner

    進(jìn)入容器

    sudo docker exec -it gitlab-runner /bin/bash

    注冊新的runner

    綁定/var/run/docker.sock到容器

    gitlab-runner register -n \ > -url http://192.168.2.100:9799/ \ > --registration-token UX91nm9za1YbgGPSymci \ > --executor docker \ > --description "Angular Runner" \ > --docker-image "docker:latest" \ > --docker-volumes /var/run/docker.sock:/var/run/docker.sock

    這個(gè)runner是使用宿主的docker構(gòu)建鏡像
    同樣需要在配置文件中增加

    ... clone_url = "http://192.168.2.100:9799/" ...
  • 由于gitlab runner會(huì)使用宿主機(jī)的docker下載一些鏡像,以及會(huì)有一些緩存,長期使用所占的空間對于一個(gè)磁盤空間不足的機(jī)器來說是個(gè)問題,需要定時(shí)清理相應(yīng)文件??梢允褂米约簩懚〞r(shí)任務(wù)清理,也可以使用官方提供的cleanup鏡像來定時(shí)清理。

    docker run -d \ -e LOW_FREE_SPACE=10G \ -e EXPECTED_FREE_SPACE=20G \ -e LOW_FREE_FILES_COUNT=1048576 \ -e EXPECTED_FREE_FILES_COUNT=2097152 \ -e DEFAULT_TTL=10m \ -e USE_DF=1 \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ --name=gitlab-runner-docker-cleanup \ quay.io/gitlab/gitlab-runner-docker-cleanup
  • docker不加sudo執(zhí)行

  • 如果還沒有docker group就添加一個(gè)
  • sudo groupadd docker

    2.將用戶加入該group內(nèi)。然后退出并重新登錄就生效啦。

    sudo gpasswd -a ${USER} docker

    3.重啟docker

    sudo service docker restart

    4.將gitlab-runner添加到docker組

    sudo gpasswd -a gitlab-runner docker

    項(xiàng)目的gitlab runner

    [[runners]]name = "Angular Runner"url = "http://192.168.2.100:9799/"token = "a2bf55eaea82fffce1cff48b3ebf3b"executor = "docker"clone_url = "http://192.168.2.100:9799/"[runners.docker]tls_verify = falseimage = "docker:latest"privileged = falsedisable_entrypoint_overwrite = falseoom_kill_disable = falsedisable_cache = falsevolumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]shm_size = 0[runners.cache][runners.cache.s3][runners.cache.gcs] [[runners]]name = "Angular test build"clone_url = "http://192.168.2.100:9799/"url = "http://192.168.2.100:9799/"token = "b2a10b9b16d5678e141bf5df636853"executor = "docker"[runners.docker]tls_verify = falseimage = "node:8.9.4"privileged = falsedisable_entrypoint_overwrite = falseoom_kill_disable = falsedisable_cache = falsevolumes = ["/cache"]shm_size = 0[runners.cache][runners.cache.s3][runners.cache.gcs]

    錯(cuò)誤

    ERROR: Job failed: Error response from daemon: repository node-cnpm not found: does not exist or no pull access (executor_docker.go:168:3s)

    報(bào)錯(cuò)的原因在于,gitlab-runner嘗試去官方的docker hub倉庫拉取鏡像。通過修改gitlab-runner中的配置,設(shè)置只拉取本地鏡像:

    never, if-not-present or always (default)

    修改 /etc/gitlab-runner/config.toml ,在 [runners.docker] 下,添加:

    pull_policy = "if-not-present" # 該配置默認(rèn)always,即只在線上拉取鏡像

    gitlab-ci.yml

    # 定義 stages stages:- install_deps- test- build- deploy# 設(shè)置緩存 cache:key: ${CI_COMMIT_REF_NAME}paths:- node_modules/# 安裝依賴 install_deps:stage: install_depstags:- Angular-clionly:- develop- masterscript:- npm config set registry https://registry.npm.taobao.org --global # 設(shè)置淘寶鏡像加速- npm install# 測試 job test: # 這是 Job 的名字,不用與 stage 選項(xiàng)一致,也可以寫成 job1stage: testtags:- Angular-cliscript:- echo "unit test successful"# 構(gòu)建 job build:stage: buildtags:- Angular-clionly:- develop- masterscript:- ./node_modules/@angular/cli/bin/ng build --prodartifacts: # 成功后將dist發(fā)送到gitlab,供后續(xù)步驟使用name: "ioa-clent-dist"expire_in: 1 weekpaths:- dist/# 部署 job deploy:stage: deploydependencies: - build # 是具體的job名稱,這樣就會(huì)自動(dòng)下載artifactstags:- Angular-Deployonly:- develop- masterscript:- sh deploy.sh

    總結(jié)

    以上是生活随笔為你收集整理的Angular gitlab持续集成之runner配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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