摘要:環(huán)境目的使用安裝和配置,搭建持續(xù)集成環(huán)境。注冊和初始化是進入容器的執(zhí)行命令,用于注冊和初始化。
安裝gitlab-runner環(huán)境:ubuntu 16.04 LTS
目的:使用Docker安裝和配置GitLab Runner,搭建GitLab CI持續(xù)集成環(huá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
參數(shù)說明:
-d: 設(shè)置容器后臺運行
--name:容器名稱
-restart always:每次啟動容器就重啟 gitlab-runner
-v: 共享目錄掛載
安裝好后,執(zhí)行$ docker ps 查看容器是否運行。
注冊和初始化$ docker exec -it gitlab-runner gitlab-ci-multi-runner register
gitlab-runner register是進入gitlab-runner容器的執(zhí)行命令,用于注冊和初始化gitlab-runner。
以下是我的配置:注意:docker image為滿足你項目構(gòu)建所需環(huán)境的鏡像。
我們也可以編輯vim /srv/gitlab-runner/config/config.toml,手動修改配置:
concurrent = 1 check_interval = 0 [[runners]] name = "test" url = "https://xxxx.oooo.com" token = "3894a417b64744e942008bcc51123a" executor = "docker" builds_dir = "/gitlab/runner-builds" cache_dir = "/gitlab/runner-cache" [runners.docker] tls_verify = false image = "node:latest" privileged = false disable_cache = false volumes = ["/data/gitlab-runner:/gitlab"] shm_size = 0 pull_policy = "if-not-present" [runners.cache]
創(chuàng)建.gitlab-ci.yml文件gitlab-ci token可以從gitlab上的項目的CI設(shè)置中獲得。
builds_dir 為文件存放位置
volumes 掛載目錄
pull_policy 設(shè)置gitlab是否從遠程拉去image,如果iamge是本地的需要配置該屬性的值為: if-not-present 或者 never
我的項目為nodejs項目,以下為測試配置。
stages: - install cache: key: ${CI_BUILD_REF_NAME} paths: - node_modules/ job-install: stage: install script: - whoami - echo $SHELL - rm -rf node_modules/ - pwd - source ~/.bashrc - nvm use 8 - node -v - yarn only: - preview tags: - test
配置好gitlab-ci文件之后,提交修改,并將最新的修改推送到origin/preview分支,即可觸發(fā)CI:
Running with gitlab-runner 10.2.0 (0a75cdd1) on test (3894a417) Using Docker executor with image followme/node:v1 ... Using docker image sha256:07e33b24b6a9bebc0e0d8ba24f15b4b3c0f6fcf321a3809371a6211ac1afc38e for predefined container... Using locally found image version due to if-not-present pull policy Using docker image followme/node:v1 ID=sha256:c99c549e8227e2323d1cebb6f988d5d8f6de7f77e1967fe0f02878b85cb72b0f for build container... Running on runner-3894a417-project-643-concurrent-0 via 304e3efed168... Cloning repository... Cloning into "/gitlab/runner-builds/3894a417/0/Frontend/api-member"... Checking out 311e85cb as preview... Skipping Git submodules setup Checking cache for preview... Successfully extracted cache $ whoami root $ echo $SHELL /bin/bash $ rm -rf node_modules/ $ pwd /gitlab/runner-builds/3894a417/0/Frontend/api-member $ source ~/.bashrc $ nvm use 8 Now using node v8.3.0 (npm v5.3.0) $ node -v v8.3.0 $ yarn yarn install v1.3.2 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages... Done in 7.21s. Creating cache preview... node_modules/: found 5627 matching files Created cache Job succeeded
注意:之前我是在Ubuntu14.04版本的系統(tǒng)上做這些配置,但是當(dāng)執(zhí)行CI的時候總會遇到以下報錯:
ERROR: Preparation failed: Error reading remote info: json: cannot unmarshal number into Go struct field Info.Debug of type bool將系統(tǒng)升級為16.04后解決該問題
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27150.html
摘要:本文的目的最主要是備忘其次是分享療效并不能讓你一下子掌握這只是一個比較完整的解決方案其他基礎(chǔ)知識自行補充基調(diào)首先這不是屠龍刀不要奢望一篇文章可以走遍天下這里只是提供一個具體的落地方案一個具體的技術(shù)選型階段代碼倉庫關(guān)于代碼倉庫本文選取的方案是 本文的目的:最主要是備忘, 其次是分享 療效: 并不能讓你一下子掌握CI/CD, 這只是一個比較完整的解決方案,其他基礎(chǔ)知識,自行補充. 基調(diào)...
摘要:現(xiàn)階段,容器技術(shù)已經(jīng)相當(dāng)成熟,就算是中小型公司也可以基于鏡像服務(wù)輕松搭建自己的集群服務(wù)。線上環(huán)境可以設(shè)置為,測試環(huán)境設(shè)置為安裝創(chuàng)建一個項目登錄創(chuàng)建一個項目。接下來我們就可以訪問集群任意一臺機器的端口。 現(xiàn)階段,Docker容器技術(shù)已經(jīng)相當(dāng)成熟,就算是中小型公司也可以基于 Gitlab、Aliyun鏡像服務(wù)、Docker Swarm 輕松搭建自己的 Docker集群服務(wù)。 安裝 Dock...
摘要:因為可以安裝到不同的機器上,所以在構(gòu)建任務(wù)運行期間并不會影響到的性能。注冊打開中的項目頁面,在項目設(shè)置中找到在運行的機器上,用命令行注冊,比如按照提示一步一步安裝就可以了。任務(wù)將按此順序執(zhí)行。當(dāng)然,這是不符合語義的。 在介紹.gitlab-ci.yml之前,我們先看幾個概念: GitLab Runner 一般來說,構(gòu)建任務(wù)都會占用很多的系統(tǒng)資源 (譬如編譯代碼),而 GitLab CI...
一、什么是CI/CDCI 持續(xù)集成CD 持續(xù)交付CI/CD就是在開發(fā)階段,通過自動化發(fā)布,來頻繁部署應(yīng)用的一種方式二、為什么要配置CI/CD想象一下,一個項目的發(fā)布如果手動部署,需要的操作有:單元測試打包文件上傳服務(wù)器等等如果每個過程都需要手動執(zhí)行,每次都要保證不出錯,這個已經(jīng)很繁瑣了。而現(xiàn)在大的前端項目多達10+的人開發(fā),而且人員流動大。如果每個人都這么發(fā)布,快速迭代就容易出錯。這時候就需要CI...
摘要:轉(zhuǎn)載請注明出處原文排版地址卡死的情況起因項目中遇到的情況,在構(gòu)建項目的時候,總會在包或者文件的時候掛起,每次都是在不同的下載文件中卡住原因分析服務(wù)器是內(nèi)網(wǎng)搭建的,所以不存在網(wǎng)絡(luò)不通暢的問題。每次項目構(gòu)建時間都比較長,有可能是存在超時的 轉(zhuǎn)載請注明出處 http://www.paraller.com 原文排版地址www.paraller.com/2016/05/22/gitlab-r...
閱讀 1408·2021-10-08 10:04
閱讀 2742·2021-09-22 15:23
閱讀 2752·2021-09-04 16:40
閱讀 1199·2019-08-29 17:29
閱讀 1529·2019-08-29 17:28
閱讀 3014·2019-08-29 14:02
閱讀 2252·2019-08-29 13:18
閱讀 884·2019-08-23 18:35