当前位置:首页 > 技术文章 > 正文内容

傻瓜式DEVOPS实践手册——Gitlab部署

zonemu3个月前 (07-08)技术文章66

GitLab是一款开放源代码的DevOps平台,用于实现从项目规划、源代码管理、CI/CD到监控和安全性的全方位集成。GitLab主要用于版本控制、协同开发、持续集成/持续部署 (CI/CD)、自动化测试、项目管理、以及安全性管理。在诸多功能中,版本控制是GitLab最为核心的功能之一,它允许多名开发人员在统一项目中进行并行开发,通过Git进行代码的合并、分支、提交和版本回退,有效提高软件开发效率和团队协作能力

GitLab Runner 是一个开源项目,用于运行您的作业并将结果发送回 GitLab。它与 GitLab CI 结合使用,GitLab CI 是 GitLab 随附的用于协调作业的开源持续集成服务。使用场景跟Jenkins类似。

准备工作

  • 外挂目录创建
mkdir -p /opt/package/test/config /opt/package/test/logs /opt/package/test/data
    • /opt/package/gitlab/config 挂载主机配置目录
    • /opt/package/gitlab/logs 挂载主机日志目录
    • /opt/package/gitlab/data 挂载主机数据目录
  • docker-compose.yml创建
services:
  gitlab:
    image: gitlab/gitlab-ce:latest #默认使用最新版,也可以指定版本号
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.56.10:8090'
        gitlab_rails['gitlab_shell_ssh_port'] = 8022
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        postgresql['shared_buffers'] = "256MB"
        gitlab_rails['gitlab_shell_ssh_port'] = 8022
      GITLAB_ROOT_PASSWORD: 'gitlab2024#' #登录账号密码,省的部署后到文件再去查找
    ports:
      - "8090:80"      # 将主机端口80映射到容器端口80
      - "8022:22"    # 将主机端口2222映射到容器端口22
    volumes:
      - /opt/package/gitlab/config:/etc/gitlab   # 挂载主机配置目录到容器
      - /opt/package/gitlab/logs:/var/log/gitlab  # 挂载主机日志目录到容器
      - /opt/package/gitlab/data:/var/opt/gitlab  # 挂载主机数据目录到容器
    networks:
      - gitlab-network

networks:
  gitlab-network:
    driver: bridge
    • external_url 登录的URL地址,记得要带上端口号,端口号要跟映射的端口号一样
    • volumes 数据卷挂载,这里的目录就是前面创建的目录,且要有写权限
  • 整体目录结构如下
./gitlab
├── config
├── data
├── docker-compose.yml
└── logs

部署执行

  • 在gitlab目录下执行如下命令
docker-compose up -d

等一会,查看容器状态,等为healthy时就可以访问了

基本设置

  • 中文设置
  • 新建项目

新建一个验证项目,需要包含dockerfile、.gitlab-ci.yml,后面做CD、CD会用到这两个文件

整个DEVOPS实践手册我已经整理成PDF文档,想要的关注我留言即可

相关文章

Vue3,父组件子组件传值,provide(提供)和inject(注入)传值

父组件向子组件传值父子组件传递数据时,通常使用的是props和emit,父向子传递使用props,子向父传递使用emit。子组件接收3种方式// 1、简单接收 props:["title...

vue 3 学习笔记 (八)——provide 和 inject 用法及原理

在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就需要传...

GitLab-合并请求(gitlab合并请求合并者还原图解)

描述合并请求可用于在您对项目进行的其他人员之间交换代码,并轻松与他们讨论更改。合并请求的步骤步骤1-在创建新的合并请求之前,GitLab中应该有一个创建的分支。您可以参考本章来创建分支-步骤2-登录到...

Python 实现 | 通过 Gitlab API 获取项目工程、分支、commit 提交记录

前提在 gitlab 中你的工程创建 Access Token然后你会得到一个 21 位 access token,代码中需要用到。代码''' 说明: 1.登录gitlab的r...

Gitlab 的使用和代码审查流程介绍

1、先简洁介绍下项目常用的信息-面板统计页面2、用户信息面板3、服务器信息4、项目信息5、重点介绍代码提交审核机制和授权合并机制开发人员推送代码的时候不能直接推送到master,否则就会报错。此时开发...

Jenkins 学习笔记(jenkins要学多久)

本学习笔记参考《Jenkins 2.x实践指南》。1. Jenkins 简介#Jenkins 是一款自动化的任务执行工具。通常用于持续集成/持续交付领域。可以通过界面或Jenkinsfile告诉Jen...