首页 > 其他分享 >docker搭建gitlab,集成CI/CD(gitlab-runner)

docker搭建gitlab,集成CI/CD(gitlab-runner)

时间:2023-10-13 18:34:26浏览次数:42  
标签:CI runner gitlab -- docker com

搭建gitlab和gitlab-runner

首先配置GITLAB_HOME

export GITLAB_HOME=/srv/gitlab

如果你是在BASH下,可以将以上配置放到~/.bash_profile文件中,使用source ~/.bash_profile使其永久生效。

docker run --detach \
  --hostname 192.168.1.205 \
  --publish 9443:443 --publish 9080:9080 --publish 9022:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab:Z \
  --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
  --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
  --shm-size 256m \
  gitlab/gitlab-ee:latest
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

查看gitlab默认密码

sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

注册Runner

gitlab-runner容器内注册

gitlab-runner register

# 输入Gitlab实例的地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
http://192.168.1.200

# 输入token
Please enter the gitlab-ci token for this runner
xxxxxxxx

# 输入描述信息
Enter a description for the runner:
[2f5631485bf3]: this is the description

# 输入tag
Enter tags for the runner (comma-separated):
test_tag

# 输入Ruuner的执行者
Enter an executor: docker-ssh, ssh, virtualbox, docker-ssh+machine, kubernetes, custom, docker, parallels, shell, docker+machine:
shell

# 如果上面executor为docker,需要你在后续项目根部的.gitlab-ci.yml中  指定具体docker版本
#Enter the default Docker image (for example, ruby:2.6):
#alpine:latest

token,登陆gitlab管理后台后查看。

注册后,会自动上线到gitlab中。

创建工作流

项目根目录下创建 .gitlab-ci.yml 文件,内容如下:

cache:
  paths:
    - node_modules/
    - dist/

stages:
  - build_deploy

variables:
  NPM_REGISTRY: "https://registry.npmmirror.com/"
  REMOTE_SERVER: "[email protected]:/www/wwwroot/xxx.xxx.com"
  
before_script:
  - npm config set registry ${NPM_REGISTRY}

build:
  stage: build_deploy
  script:
    - npm install  # 执行 npm install 安装依赖
    - npm run build  # 执行 npm run build
    - sshpass -p 12345678 scp -o StrictHostKeyChecking=no -r dist/* $REMOTE_SERVER # 提交部署
    - echo 'success!'

提交并触发CI/CD流程

git add .gitlab-ci.yml
git commit -m "Add CI/CD configuration"
git push origin master

查看已注册

cat /etc/gitlab-runner/config.toml

避免重复拉取镜像

/etc/gitlab-runner/config.tomlrunners.docker中添加pull_policy = "if-not-present"

gitlab修改克隆地址

方法1

修改/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml文件,修改gitlab下的hostport

修改完成后执行gitlab-ctl restart使配置生效
缺点:reconfigure后配置失效,需要重新配置。

方法2

修改/etc/gitlab/gitlab.rb,修改external_url

修改完成后执行gitlab-ctl reconfigure使配置生效

因为是docker部署,由于内外部映射了不同端口,http监听端口可能不是80,

需要修改文件中 nginx['listen_port']=xxx 到实际的监听端口,否则gitlab无法正常启动。

Gitlab-Runner环境配置

使用docker拉起的环境是ubuntu,我们安装软件可以使用apt install

我这个项目是nodejs的,索性把安装nodejs的步骤贴到这里。

apt update
apt install nodejs
node -v
apt install npm

在Ubuntu 20.04默认的软件仓库中,提供了一个版本为10.19的Node.js。这个版本已经比较老了。也可以采用下面的方式安装。

curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
bash nodesource_setup.sh
apt install nodejs
node -v

推荐博文

GitLab-CI中的artifacts使用研究:http://zacksleo.top/archives/

Gitlab CI 使用高级技巧:https://www.jianshu.com/p/3c0cbb6c2936

一文搞定gitlab的环境搭建、配置CI/CD、自动构建docker镜像:https://www.cnblogs.com/hzhhhbb/p/13966904.html?share_token=4dfe4dbe-caac-4437-b2b4-ea59b03c67d1

gitlab CI/CD持续集成 https://www.cnblogs.com/linagcheng/p/14707967.html

docker安装gitlab-runner https://www.cnblogs.com/lvlinguang/p/15191669.html

标签:CI,runner,gitlab,--,docker,com
From: https://www.cnblogs.com/guowenrui/p/17762863.html

相关文章

  • RunnerGo测试平台,无代码玩转UI自动化测试
    首先需要进入官网,RunnerGo支持开源,可以自行下载安装,也可以点击右上角体验企业版按钮快速体验 点击体验企业版进入工作台后可以点击页面上方的UI自动化进入到测试页面 创建元素我们可以在元素管理中创建我们测试时需要的元素 这里我们以一个打开百度搜索的场景,添加了......
  • 以效率为导向:用ChatGPT和HttpRunner实现敏捷自动化测试(二)
    1、前言在上一篇文章:利用ChatGPT提升测试工作效率——测试工程师的新利器(一)中,我们提到了如何通过chatGPT生成单接口测试用例,然后再让chatGPT去根据测试用例去生成接口自动化脚本。本篇文章将详细讲解一下我们团队内部在遇到业务痛点时如何利用Httprunner框架进行接口自动化测......
  • Loadrunner12.5-录制http://www.gw.com.cn/网页时提示“SSL身份验证失败”错误
    问题:LR产品,录制http://www.gw.com.cn/网页时提示下图错误,这是为什么呢?请在如下recordingoptions中选择正确的SSL版本,再进行录制。注:如何确定那个SSL版本是正确的呢?答:需要与网站这边进行确认,问他们网站使用的SSL版本是多少? ......
  • Loadrunner12 在谷歌浏览器录制https协议的脚本时,提示不是私密链接-解决办法
    在谷歌浏览器下,录制https协议网址的脚本时,会出现如下提示:   接下来,教大家一招黑操作: 1、鼠标点击屏幕,聚焦在当前页面2、输入thisisunsafe,点击回车,奇迹的事情发生了,可以打开https协议的网页正常录制了!!!   3、接下来就根据你的测试需求,来进行操作。(只要提示不是私密......
  • Git、Gerrit与Jenkins/Hudson CI服务器
    本文讲述了如何为基于团队的代码审查系统配置Git、Gerrit与Jenkins/Hudson,正如我在《Git,GerritandJenkinsforiOSdevelopment》和《GerritGitReviewwithJenkinsCIServer》演讲(以及第一次提出这种做法的《Someday...》)中所倡导的那样。文中的范例假定你所使用的操作......
  • [AGC013E] Placing Squares 题解
    PlacingSquares关键是将问题从抽象的“正方形面积”转为具象的形式:一段长度为\(d\)的区间,有两个不同的小球要放进去,则总放置方案就是\(d^2\),且不同的区间间方案是通过乘法原理结合的,刚好是题目中\(\prodd^2\)的形式。于是我们可以设计DP:设\(f_{i,j}\)表示前\(i\)个......
  • gitlab、线上合并分支、远程仓库回滚、git工作流,git pull和git fetch,变基、pycharm操
    gitlab使用1、创建账号---》管理员审核2、登录进去---》就能看到项目--(项目管理员把你添加成开发者了)3、把代码clone下来,使用pycharm打开4、写代码,本地提交问题:普通开发者,提交到master分支是不行的创建一个dev分支---》提交到dev分支后期由管理员做分支合并--......
  • RunnerGo UI自动化测试功能使用体验
    首先需要进入官网,RunnerGo支持开源,可以自行下载安装,也可以点击右上角体验企业版按钮快速体验 点击体验企业版进入工作台后可以点击页面上方的UI自动化进入到测试页面 创建元素我们可以在元素管理中创建我们测试时需要的元素 这里我们以一个打开百度搜索的场景,添加了......
  • typesciprt: Command Pattern
     /****CommandPattern命令是一种行为设计模式,它可将请求或简单操作转换为一个对象。*file:Commandts.ts*TheCommandinterfacedeclaresamethodforexecutingacommand.**/interfaceCommand{execute():string;//void}/***Somecomm......
  • C#中如何获得ASCII码的字母?
        ASCII码是计算机的基础,有时编程过程中也要遇到,这里重点介绍0-127之间的ASCII码表。   0~31及127(共33个)是控制字符和通信专用字符。控制字符,如LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等。通信专用字符,如SOH(文头)、EOT(文尾)、ACK(确认......