docker-gitlab

  1. GitLab
  2. 1. gitlab一些设置
    1. 1.允许用户注册
    2. 2. 主分支保护
  3. 2. CI/CD
    1. 流程
    2. gitlab-runner
    3. 注册 gitlab-runner
    4. 提交触发gitlab的 ci/cd
  4. GitLab配置文件
    1. 1. 修改gitlab的默认host地址

记录一下自己简单配置gitlab-community版本的过程,以及目前遇到的一些问题和解决方法

GitLab

1. gitlab一些设置

1.允许用户注册

  • gitlab.rb 中加上这个
gitlab_rails['gitlab_signup_enabled'] = true

访问 admin 用户管理页面

http://localhost:8929/admin

2. 主分支保护

2. CI/CD

流程

本实验的流程

image-20250323205830218

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
github