前言
这次安装的gitlab和runner都是用docker运行的 ,gitlab version是16.0以上的了,所以runner的注册绑定会和以前有一点点改动。
1. 安装gitlab:
docker run -d -p 7443:443 -p 80:80 -p 7022:22 --privileged=true --name gitlab --restart always -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
修改配置:
vim /data/gitlab/config/gitlab.rb
添加或者修改这部份:
# 配置http协议所使用的访问地址,不加端口号默认为80,最好是域名
external_url 'http://ip'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'ip'
gitlab_rails['gitlab_shell_ssh_port'] = 7022
登陆默认账户是root
1.查找默认密码是可以输入显示的就是密码:
grep Password /data/gitlab/config/initial_root_password
2.也可以直接修改
第一次进去如果没有提示修改root管理员账户
docker exec -it xx_gitlab_id /bin/bash
执行下面这个命令修改
id:1 一般都是root的账号
gitlab-rails console -e production #这一步会要等待一下
user = User.where(id: 1).first #此 user 则表示 root 用户
user.password = '+passwd' #修改密码,
user.password_confirmation = '+passwd' #确认密码
user.save!
exit
补充:
同理也可以进控制台修改别人的账户密码:
gitlab-rails console -e production
user=User.where(email:‘jenkins@domian.com’).first #通过邮箱找到用户
user.password=12345678 #重置密码
user.password_confirmation=12345678 #确认密码
user.save! #保存
exit
gitlab就算安装完了,如果ip设置那里端口80被占用了,你们用了别的端口,跳转有点问题的话,可以用nginx路由,
然后创建用户和项目都会吧!
2. 安装gitlab-runner:
docker run -d --name gitlab-runner --restart always \
--privileged \
-v /data/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
gitlab/gitlab-runner:latest
3. 绑定runner
三种runner类型
官方描述:https://docs.gitlab.com/ee/ci/runners/runners_scope.html
Shared runners are available to all groups and projects in a GitLab instance.
Group runners are available to all projects and subgroups in a group.
Specific runners are associated with specific projects. Typically, specific runners are used for one project at a time.
1.我是给项目配置的runner, 配置路径在项目setting里面的CI/CD:
2. 创建runner:
tag我给test,其他的随便吧,看自己需要
然后把下面显示的命令复制,进入gitlab-runner容器里面执行:
刚创建是黑色的感叹号,等执行以上的命令绑定后,就会变成running状态了:
4. 测试
项目的根目录添加.gitlab-ci.yml文件测试一下:
stages:
- build
- deploy
build:
stage: build
tags:
- test # 设置runner时候添加的tags
only:
refs:
- main # 指定分支
script:
- echo "./gradlew clean "
- echo "./gradlew build"
deploy:
stage: deploy
tags:
- test
only:
refs:
- main
script:
- echo "hello deploy"
后面记得要去学习gitlab-cicd相关的命令喔
补充:docker里面搭建编译服务环境
如果后面注册的runner executor是shell,可以在gitlab-runner容器里面搭建一个可以build服务的环境:
# 切换安装目录
cd /usr/local
# 下载java
wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
# 解压软件包
tar -zxvf openjdk-17.0.2_linux-x64_bin.tar.gz
# 重命名目录
mv jdk-17.0.2 jdk-17
# 下载gradle
wget https://services.gradle.org/distributions/gradle-7.6.1-bin.zip
# 解压软件包
unzip gradle-7.6.1-bin.zip
# 下载maven
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
# 解压软件包
tar -zxvf apache-maven-3.8.8-bin.tar.gz
# 配置环境变量
vim /etc/profile
# 加上
export MAVEN_HOME=/usr/local/apache-maven-3.8.8
export JAVA_HOME=/usr/local/jdk-17
export GRADLE_HOME=/usr/local/gradle-7.6.1
export PATH=$MAVEN_HOME/bin:$GRADLE_HOME/bin:$JAVA_HOME/bin:$PATH
# 加载
source /etc/profile
如果提示 command not found: unzip
apt-get update
apt-get install unzip
如果提示 command not found: vim
apt-get update
apt-get install vim
参考地址:
https://blog.csdn.net/qinjm8888/article/details/109355888