当前位置: 首页 > article >正文

使用docker-compose私有化部署 GitLab

在软件开发和协作过程中,版本控制是至关重要的一环。GitLab 是一个功能强大的开源平台,提供了完整的代码管理功能,包括版本控制、问题跟踪以及持续集成等。这使得团队能够更高效地协作开发。前段时间翻阅笔记时,偶然发现了之前公司关于 GitLab 部署的笔记。今天,我想和大家分享一下 GitLab 的基本概念,并展示如何利用 Docker Compose 实现其私有化部署。

gitlab.jpg

GitLab 简介

GitLab 是一个基于 Git 的 Web 应用程序,提供了存储库管理、问题跟踪和持续集成功能。其主要特点包括:

  • 版本控制系统:GitLab 支持版本控制系统,使团队能够轻松地管理代码库和版本历史。
  • 问题跟踪:能够创建、分配和解决问题,更好地管理项目的开发过程。
  • 持续集成与持续部署:GitLab 提供了强大的持续集成与持续部署功能,使开发团队能够自动化构建、测试和部署他们的应用程序。

使用 Docker Compose 部署 GitLab

第一步:创建docker-compose.yml文件

首先创建一个gitlab的部署目录:

mkdir gitlab

在此目录下创建docker-compose.yml文件

version: '3.3'

services:
  gitlab:
    image: 'gitlab/gitlab-ce:14.10.2-ce.0'
    restart: always
    hostname: 'gitlab'
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.10.105:3000'  # web站点访问地址
        gitlab_rails['gitlab_shell_ssh_port'] = 222
    ports:
      - '3000:3000' # 注意宿主机和容器内部的端口要一致,否则external_url无法访问
      - '8443:443'
      - '222:22'
    volumes:
      - ./gitlab/config:/etc/gitlab
      - ./gitlab/data:/var/opt/gitlab
      - ./gitlab/logs:/var/log/gitlab
    logging:
      driver: 'json-file'
      options:
        max-size: '2g'

第二步:启动容器

在docker-compose.yml 的同级目录下执行如下命令启动容器:

docker-compose up -d 

启动过程稍稍有点久,家人们耐心等待下

如果不出意味的话我们的容器就已经启动了

使用系统

  • 登录系统

在浏览器中输入 http://192.168.10.105:3000 访问系统

_20231024231002.jpg

默认用户为: root
密码在gitlab部署目录下gitlab下的gitlab/config/initial_root_password 这个文件中

_20231024231358.jpg

  • 修改语言

在系统上将语言设置为中文

_20231024231515.jpg

_20231024231532.jpg

保存完成之后刷新页面即可

_20231024231548.jpg

  • 其它操作

其它操作我们就不在此做描述了,家人们可以自行使用。

总结

通过本文介绍的简单步骤,您可以使用 Docker Compose 快速部署私有化的 GitLab 实例。GitLab 提供了强大的代码管理和协作功能,而 Docker Compose 则为您提供了一种简单的部署解决方案,使您可以轻松搭建和管理您的开发环境。

希望本文能帮助您更好地理解 GitLab 和 Docker Compose,并在您的开发工作中提供便利。


http://www.kler.cn/a/107647.html

相关文章:

  • Objection
  • 如何在Puppeteer中实现表单自动填写与提交:问卷调查
  • Vue7种组件之间通信方式
  • Android 下内联汇编,Android Studio 汇编开发
  • uniapp打包华为,提示请提供64位版本软件包后再提交审核
  • 《AI 使生活更美好》
  • 5G与医疗:开启医疗技术的新篇章
  • freeRTOS学习day4-中断使用消息队列
  • 软考系列(系统架构师)- 2012年系统架构师软考案例分析考点
  • Hive常用DDL操作
  • 如何隐藏woocommerce 后台header,woocommerce-layout__header
  • vue中,js获取svg内容并填充到svg图中
  • 信道数据传输速率、信号传播速度——参考《天勤计算机网络》
  • Spring Boot进阶(94):从入门到精通:Spring Boot和Prometheus监控系统的完美结合
  • windows下OOM排查
  • Vite多页面应用简单构建
  • [C++]——带你学习类和对象
  • 电脑报错由于找不到vcruntime140.dll文件怎么修复
  • 在全新ubuntu上用gpu训练paddleocr模型遇到的坑与解决办法
  • python爬虫request和BeautifulSoup使用
  • 在DOS或Windows环境中,使用工具Debug
  • 【斗罗二】霍雨浩迷惑审查,戴华斌故意挑衅,惨败者屈服下跪
  • 金融领域:怎么保持电力系统连续供应?
  • 解决cloudflare pages部署静态页面发生404错误的问题
  • 【AD9361 数字接口CMOS LVDSSPI】B 并行数据之CMOS 续
  • 如何选择最适合 Android 的 SD 卡恢复软件?