vue-java-tutorials/drools/Gitlab安装.md

256 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Gitlab安装
完全笔记《安装GitLabel》 https://www.yuque.com/bunny-6ixda/bgxtva/wtw4x4r8kbvxwgac?singleDoc#
## Docker安装
- docker镜像
- https://hub.docker.com/r/gitlab/gitlab-ee/tags?name=17.9.6
- https://hub.docker.com/r/gitlab/gitlab-runner/tags?name=17.11.0
```bash
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt upgrade
sudo apt-get install ca-certificates curl gnupg lsb-release
# 添加Docker官方GPG密钥
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 默认情况下只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组以避免每次使用Docker时都需要使用sudo设置完成后退出当前用户之后再进入既可
sudo usermod -aG docker $USER
# 运行docker
sudo systemctl start docker
# 安装工具
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# 重启docker
sudo service docker restart
# 重启终端生效
exit
```
配置镜像源
```bash
# 创建目录
sudo mkdir -p /etc/docker
# 写入配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker-0.unsee.tech",
"https://docker-cf.registry.cyou",
"https://docker.1panel.live"
]
}
EOF
# 重启docker服务
sudo systemctl daemon-reload && sudo systemctl restart docker
```
## 环境搭建
### 安装JDK21
```bash
# 安装JDK21
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb
sudo dpkg -i jdk-21_linux-x64_bin.deb
java --version
```
### Maven 3.8.8安装
#### 安装
```bash
# 安装maven
wget https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
sudo mkdir -p /opt/maven
sudo tar -xzf apache-maven-3.8.8-bin.tar.gz -C /opt/maven
sudo mv /opt/maven/apache-maven-3.8.8 /opt/maven/maven-3.8.8
# 修改镜像配置
cd /opt/maven/maven-3.8.8/conf
# 赋予权限修改
sudo chmod 666 settings.xml
# 编写配置
sudo vim /etc/profile
# 添加以下内容
# export PATH=$PATH:/opt/maven/maven-3.8.8/bin
# 刷新配置
source /etc/profile
mvn -V
```
#### maven的镜像
```xml
<mirror>
<id>aliyun</id>
<name>Aliyun Maven Mirror</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
```
## 安装Gitlab
```bash
# Ubuntu
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/gitlab-ce_18.0.0-ce.0_amd64.deb
# dpkg
sudo dpkg -i gitlab-ce_18.0.0-ce.0_amd64.deb
```
### 编辑配置
```bash
# 编辑站点
sudo vim /etc/gitlab/gitlab.rb
```
修改下面内容
```bash
external_url 'http://192.168.95.134:3001'
```
应用配置
```bash
# 应用配置
sudo gitlab-ctl reconfigure
```
### 常用命令
```bash
# 服务控制
sudo gitlab-ctl start
sudo gitlab-ctl status
sudo gitlab-ctl stop
# 应用配置
sudo gitlab-ctl reconfigure
# 重启
sudo gitlab-ctl restart
```
### 查看密码
```bash
# 24 小时后自动删除
sudo cat /etc/gitlab/initial_root_password
```
## 安装Gitlab-Runner
```bash
# 需要 gitlab-runner-helper-images
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner-helper-images/gitlab-runner-helper-images_18.0.1-1_all.deb
sudo dpkg -i gitlab-runner-helper-images_18.0.1-1_all.deb
# 之后安装 gitlab-runner
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner/gitlab-runner_18.0.1-1_amd64.deb
sudo dpkg -i gitlab-runner_18.0.1-1_amd64.deb
```
### 先下载后安装
```bash
# Ubuntu
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner-helper-images/gitlab-runner-helper-images_18.0.1-1_all.deb
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner/gitlab-runner_18.0.1-1_amd64.deb
# dpkg
sudo dpkg -i gitlab-runner-helper-images_18.0.1-1_all.deb
sudo dpkg -i gitlab-runner_18.0.1-1_amd64.deb
```
### 配置Gitlab-Runner用户
> [!NOTE]
>
> 如果有需要清理缓存:`sudo rm -rf /opt/maven/maven-3.8.8/conf/builds/**`**
>
> gitlab-cehttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/
>
> gitlab-runner-helper-imageshttps://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner-helper-images/
>
> gitlab-runnerhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner/
```bash
sudo gitlab-runner uninstall
sudo gitlab-runner install --working-directory /home/gitlab-runner --user root
sudo systemctl restart gitlab-runner
```
### 检查 GitLab Runner 配置
```bash
sudo vim /etc/gitlab-runner/config.toml
```
修改文件
```bash
[[runners]]
name = "my-runner"
executor = "shell"
shell = "bash"
user = "gitlab-runner" # 确保用户有权限
working_directory = "/home/gitlab-runner"
```
### 检查 Maven 安装目录权限
```bash
sudo chmod 777 -R /opt/maven/maven-3.8.8
sudo chmod 777 -R /opt/maven/maven-3.8.8/
sudo chown -R gitlab-runner:gitlab-runner /opt/maven/maven-3.8.8/
```
## CI/CD脚本示例
如果构建出现`pending`情况大部分情况下,是文件写错了,要么是`Gitlab-Runner`标签没写对
```yml
stages:
- build
- build-docker
- deploy
variables:
CONTAINER_NAME: "bunny-auth-server"
DOCKER_TAG: "4.0.0"
build-job:
stage: build
script:
- echo "Compiling the code..."
- mvn clean package -DskipTests
- echo "Compile complete."
- docker pull openjdk:24-ea-17-jdk-oraclelinux9
- echo "docker pull complete."
- docker build -f Dockerfile -t $CONTAINER_NAME:$DOCKER_TAG .
- echo "Application successfully deployed."
deploy-job:
stage: deploy
environment: production
script:
- echo "Deploying application..."
- docker stop $CONTAINER_NAME || true
- docker rm $CONTAINER_NAME || true
- docker run -d -p 7070:7070 -p 8000:8000 --name $CONTAINER_NAME --restart always $CONTAINER_NAME:$DOCKER_TAG
- echo "Application successfully deployed."
```