记录一下自己简单配置gitlab-community版本的过程,以及目前遇到的一些问题和解决方法
GitLab
1. gitlab一些设置
1.允许用户注册
- 在 gitlab.rb 中加上这个
gitlab_rails['gitlab_signup_enabled'] = true
访问 admin 用户管理页面
http://localhost:8929/admin
2. 主分支保护
2. CI/CD
流程
本实验的流程
gitlab-runner
准备好 gitlab-runner
- docker-compose.yml
services:
gitlab_runner:
image: gitlab/gitlab-runner:latest
container_name: gitlab_runner
volumes:
- ./config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
privileged: true # 非常非常重要,否则无法使用docker命令
- 运行
docker-compose up -d
注册 gitlab-runner
- 进入容器内执行命令
docker exec -it gitlab_runner gitlab-runner register
- 填写注册的服务各种信息【以 python test为例】
# 输入 gitlab的访问地址
http://192.168.1.104:8929
# 输入 runner token,把开 http://192.168.1.104:8929 /admin/runners 页面查看
M42NLyenKL4B4d8PX-By
# runner 描述 随便填写
python_runner test项目
# runner tag 【runner的标签,后面写gitlab-ci.yml时要用】
python_test
# 选择什么类型 【shell、docker】
docker
# 选择下载的python镜像
python3.8
提交触发gitlab的 ci/cd
- gitlab端创建代码仓库,将代码提交到仓库中
以python的一个简单项目作为案例
- main.py
def add(a, b):
return a + b
if __name__ == "__main__":
print("Hello, World!")
print("3 + 4 =", add(3, 4))
- .gitlab-ci.yml
stages:
- run
run-app:
stage: run
image: python:3.8
script:
- python main.py
tags:
- test # 需与你 Runner 注册时设置的 tag 一致
如果有三方的依赖,需要增加一个requirements.txt文件
然后在script中习上
- pip install -r requirements.txt -i xxx
gitlab-runner 会自己自己git pull 代码然后再拉一个image【优先本地】来构建一个run案例,也就是运行一个新的py3.8_docker容器,然后执行完脚本指令销毁
所以 .gitlab-ci.yml 中环境这一块要仔细些配置环境的脚本
直接提交触发 CI,运行通过!
GitLab配置文件
1. 修改gitlab的默认host地址
本地地址经常变动就用这种方法来解决
- 配置文件
cd /opt/gitlab/embedded/service/gitlab-rails/config
vi gitlab.yml
# 推荐使用这个来重启服务
sudo gitlab-ctl restart