首页 > 其他分享 >使用 docker-compose 部署 Gitlab

使用 docker-compose 部署 Gitlab

时间:2024-02-14 13:33:20浏览次数:29  
标签:compose gitlab DB Gitlab docker GITLAB

现在基本上每个公司,只要有代码开发工作,都会搭建 Gitlab 代码托管服务器,很少有公司再使用 SVN 等其它代码托管服务器了。

本篇博客介绍如何快速搭建 Gitlab 服务器,有关 Gitlab 的使用方法,限于篇幅,这里就不介绍了。

作为一名开发人员,搭建完成后,自己最好要仔细研究一下各项功能的用法,否则可能在公司里面没法混下去。

我的 CentOS7 虚拟机 ip 地址是 192.168.136.128,已经安装好了 docker 和 docker-compose

我们采用国外的一名大佬在 GitHub 上已经编写好的 docker-compose.yml,根据自己的实际需求,简单修改一下就可以使用。

GitHub 地址为:https://github.com/sameersbn/docker-gitlab

如果 GitHub 无法访问,可以参考我之前的博客进行解决:https://www.cnblogs.com/studyjobs/p/17909443.html


一、快速搭建 Gitlab

首先访问 GitHub 地址 https://github.com/sameersbn/docker-gitlab/releases 下载最新版本的代码

目前我所遇到的最新版本是 16.8.2,下载 zip 包 docker-gitlab-16.8.2.zip 并进行解压缩,里面有 docker-compose.yml 文件

我们首先在自己的虚拟机上创建 /app/gitlab 目录,并创建相关的子目录,结构如下所示:

image

Gitlab 需要使用到 Redis 和 Postgresql 数据库,因此需要创建相应的子目录,存储其数据文件。

然后根据自己的需要,参考压缩包中的 docker-compose.yml 内容,复制过来修改一下,我经过测试,使用了最精简的内容:

version: '3.5'

services:
  redis:
    container_name: redis
    restart: always
    image: redis:6.2.6
    ports:
      - 6379:6379
    volumes:
      - /app/gitlab/redis-data:/data
    networks:
      - gitlab_net

  postgresql:
    container_name: postgresql
    restart: always
    image: sameersbn/postgresql:14-20230628
    volumes:
      - /app/gitlab/postgresql-data:/var/lib/postgresql
    ports:
      - 5432:5432
    environment:
      - DB_USER=gitlab
      - DB_PASS=gitlab123
      - DB_NAME=gitlabdb
      - DB_EXTENSION=pg_trgm,btree_gist
    networks:
      - gitlab_net

  gitlab:
    container_name: gitlab
    restart: always
    image: sameersbn/gitlab:16.8.2
    depends_on:
      - redis
      - postgresql
    ports:
      - "8080:80"
      - "8022:22"
    volumes:
      - /app/gitlab/gitlab-data:/home/git/data
    networks:
      - gitlab_net
    environment:
      - DEBUG=false
      # 配置连接 postgresql 的信息
      - DB_ADAPTER=postgresql
      - DB_HOST=postgresql
      - DB_PORT=5432
      - DB_USER=gitlab
      - DB_PASS=gitlab123
      - DB_NAME=gitlabdb
      # 配置连接 redis 的信息
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      # 配置时区
      - TZ=Asia/Shanghai
      - GITLAB_TIMEZONE=Asia/Shanghai
      # 禁用 https 以及自签名功能
      - GITLAB_HTTPS=false
      - SSL_SELF_SIGNED=false
      # 配置服务地址(由于在容器内,配置localhost即可),端口等信息
      - GITLAB_HOST=localhost
      - GITLAB_PORT=8080
      - GITLAB_SSH_PORT=8022
      # 以下 3 个配置项必须要有,否则无法启动 gitlab 服务
      - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string
      # 禁用通知功能
      - GITLAB_NOTIFY_ON_BROKEN_BUILDS=false
      - GITLAB_NOTIFY_PUSHER=false
      # 禁用自动备份功能
      - GITLAB_BACKUP_SCHEDULE=disable
      # 禁用 smtp 功能
      - SMTP_ENABLED=false
      # 禁用 imap 功能
      - IMAP_ENABLED=false
      # 禁用 oAuth 认证
      - OAUTH_ENABLED=false

networks:
  gitlab_net:
    driver: bridge

有关 Gitlab 镜像中 environment 下面可以配置的相关参数及其含义,可以参考上面给出的 GitHub 访问地址的首页。

我在实际测试过程中发现:有些配置项使用的话,可能会报错;有的使用后不起作用。可能是我用法不当,也可能是新版本存在 bug,有待完善。

不过可以肯定的是:上面贴出来的 docker-compose.yml 内容是我踩坑摸索出来的精简内容,绝对可以放心使用。

然后运行 docker-compose up -d 命令启动服务,需要注意的时,Gitlab 服务启动速度比较慢,可能需要 2 分钟。

可以使用 docker-compose logs -f gitlab 实时查看 gitlab 服务的启动日志,过了几分钟等待日志不再滚动后就启动成功了。


二、验证部署成果

由于我采用的是 8080 端口,因此访问 http://192.168.136.128:8080 即可

默认的超级管理员账号是 root,邮箱是 [email protected] ,密码是 5iveL!fe,不过首次访问会提示修改默认登录密码:

image

修改完密码后,就可以登录了,使用默认用户名是 root 或邮箱 [email protected] ,结合修改后的密码都可以登录。

如果觉的用户名和邮箱名称不合适的话,登录进去之后,也是可以修改的,稍后会介绍如何修改。

登录进去之后,默认界面是英文界面,我们可以修改成中文界面,具体做法如下图:

image

在右侧页面往下拉,找到 Localization ,在 Language 下拉列表中选择简体中文,然后点击底部的 Save changes 保存。

image

然后刷新一下页面,整个界面就变成中文界面了,这样就比较方便学习和研究 Gitlab 的相关功能了。

我们肯定会在 Gitlab 上创建其它用户账号,为了能够让新创建的账号,首次登录系统也展示中文界面,可以进行如下操作:

image

由于当前是超级管理员用户,因此在左侧菜单下面有【管理中心】按钮,点击进入管理中心后,找到本地化,下拉列也选择【简体中文】即可。

image

如果想要修改用户名和邮箱,使用新的用户名和邮箱进行登录,可以在左侧菜单【概览】下面选择【用户】,编辑用户的信息即可。

image


以上就是 docker-compose 部署 Gitlab 的介绍,不熟悉的小伙伴们,赶紧自己部署一下,仔细研究和体验一下 Gitlab 吧。

具体如何使用,这里就不介绍了,可以自己在 Gitlab 上创建项目,使用 IDEA 或 Visual Studio 进行代码上传和开发交互。

都已经变成中文界面了,学习和研究没有什么难度,尤其是开发人员,必须得熟练掌握 Gitlab ,不然没法在公司里面混的。

标签:compose,gitlab,DB,Gitlab,docker,GITLAB
From: https://www.cnblogs.com/studyjobs/p/18015154

相关文章

  • docker环境部署
    1.下载docker点击查看代码#1.阿里云镜像资源(先执行这个下载加速)yum-config-manager--add-rephttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#2.安装dockeryuminstall-ydocker-ce2.启动Docker服务安装完成后,使用下面的命令来启动docker服务,并......
  • 使用 docker-compose 部署 nacos(单机和集群)
    之前已经编写过有关nacos的单机部署和集群部署,是直接在CentOS7上直接部署的,之前的博客链接如下:单机版nacos部署:https://www.cnblogs.com/studyjobs/p/17380184.html集群版nacos部署:https://www.cnblogs.com/studyjobs/p/17383397.html为了进一步简化部署,本篇博客介绍如......
  • Docker小知识备忘录
    本文整理了一些Docker基础知识和常用命令,方便朋友们查阅。同时也感谢Docker这个划时代的产品,它解决了环境一致性的问题,让交付和迁移更轻松。1、Docker与虚拟化1.1、虚拟化技术虚拟化技术分为两大类,全虚拟化和半虚拟化。全虚拟化比如之前我们使用的虚拟机就是全虚拟化,这种......
  • Docker入门学习
    Docker学习笔记目录Docker学习笔记1.快速入门1.1部署MySQL1.2命令解读2.Docker基础2.1常见命令2.2数据卷2.2.1什么是数据卷?2.2.2挂载本地目录或文件(推荐)2.3自定义镜像2.3.1镜像的结构2.3.2Dockerfile2.3.3构建镜像2.4网络3.项目部署3.1手动部署3.1.1部署后端项目3.1.2部署前端项......
  • Mac电脑安装RedisCluster集群(非Docker模式)
    第1步,新建redis.confredis.conf内容如下:port7021cluster-enabledyes              //启用集群模式cluster-config-filenodes.conf     //集群的配置文件cluster-node-timeout5000appendonlyyesdaemonizeyesbind0.0.0.0   ......
  • Docker的错误和解决_2
    windows11下启动docker运行镜像ok,  但是浏览器访问时80端口的访问失败  其他端口ok,可能是我本地iis占了 ......
  • Asp-Net-Core学习笔记:部署,早知道,还是docker,以及一点碎碎念
    前言AspNetCore技术栈在我们团队里的使用也有一段时间了,之前的部署方式一直是本地编译之后上传可执行文件到服务器,使用supervisor来管理进程这种很原始的方式。参考之前的文章:对于小项目来说尚可,够用,但是存在几个问题:每次更新花费的时间太长了,无论是Framework-Dependent还是S......
  • docker学习的时候敲的历史命令。两百多条
    sudoaptlist|grep-idockercurlhttps://registry-1.docker.io/v2/sudodockerstatussudodockerstatssudodockerpssudodockerps-asudodockerstartebb9831a05fdsudodockerpssudodockerstopebb9831a05fdsudodockerps-asudodockerrun-d......
  • Docker的资源限制
    前言本文主要会介绍笔者在学习Docker的资源限制实现原理时所总结的知识点,其中会涉及到对于CPU资源限制、内存资源限制以及磁盘I/O资源限制等方面的相关内容。笔者也会将自己的理解在文中进行阐述,这也算是在和大家交流心得的一个过程。若文中有错误的理解和概念,请大家及时纠正;吸纳......
  • docker---dockerfile自定义镜像指令
    dockerfile指令FROM#指定所基于的镜像名称及其标签来创建新镜像。RUN#在镜像中执行命令。ADD#将文件或目录复制到镜像中。可以使用URL作为源文件。COPY#与ADD类似,将文件或目录复制到镜像中,但不支持URL作为源文件。CMD#指定运行容器时要执行的命令,如果在......