使用docker运行gitlab服务

2023-05-16

之前,在服务器上直接安装配置过gitlab,感觉需要配置安装的东西还是挺多的:git,redis,postgresql,nginx等。这么多服务一起,备份和迁移都不方便。为了避免这个问题,决定将gitlab进行docker化部署。所有服务组件都在一个docker容器里面,只需将重要的配置、repo数据等挂载在宿主机上保存。平时只要备份挂载的数据目录即可,另外,如果需要迁移,也只需把数据目录拷贝到其它服务器,通过docker容器运行即可。

我使用的gitlab镜像是从docker公共仓库上下载的gitlab/gitlab-ce,里面包含了需要的所有组件服务,只要这一个镜像即可(当时GitLab的版本是8.7.5)。

1 容器的运行命令

容器的运行其实很简单,但刚开始也折腾了许久才让它按照自己想要的方式跑起来。

docker run --name='gitlab-ce' -d \
       -p 10022:22 -p 80:80 \
       --restart always \
       --volume /data/gitlab/config:/etc/gitlab \
       --volume /data/gitlab/logs:/var/log/gitlab \
       --volume /data/gitlab/data:/var/opt/gitlab \
       gitlab/gitlab-ce

-p 用来指定docker容器映射宿主机的服务端口。80是web访问用的端口,22是ssh协议用的端口;
–volume 用来指定挂载目录。将config配置目录、data数据目录、logs日志目录挂载到宿主机上,以后备份起来也方便。

2 配置gitlab服务器的访问地址

按照上面的方式,让gitlab容器运行起来是没有问题的,但是当在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,即容器的id。作为gitlab服务器,当然是需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机上的路径为:/data/gitlab/config/gitlab.rb)配置文件里面的参数。

# 配置http协议所使用的访问地址
external_url 'http://10.200.0.100'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.200.0.100'
gitlab_rails['gitlab_shell_ssh_port'] = 10022

为了方便,这里直接用宿主机ip来指定。ssh默认使用的端口号是22,但是为了避开与宿主机22端口的冲突,这里用了10022。通过上面的配置,gitlab上的项目生成的访问地址如下:

# HTTP
http://10.200.0.100/root/test-docker-gitlab.git
# SSH
ssh://git@10.200.0.100:10022/root/test-docker-gitlab.git

3 配置邮件发送功能

个人觉得gitlab服务器发送邮件的功能是必不可少的,尤其是在用户注册时,通知用户设置密码也是通过发送邮件来完成的。这里也是修改gitlab.rb配置文件来完成。

# 这里以新浪的邮箱为例配置smtp服务器
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.sina.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "name4mail"
gitlab_rails['smtp_password'] = "passwd4mail"
gitlab_rails['smtp_domain'] = "sina.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true

# 还有个需要注意的地方是指定发送邮件所用的邮箱,这个要和上面配置的邮箱一致
gitlab_rails['gitlab_email_from'] = 'name4mail@sina.com'

注意,每次修改gitlab.rb配置文件之后,或者在容器里执行gitlab-ctl reconfigure命令,或者重启容器以让新配置生效。

其他

  1. 如果想要支持https的话,还需要配置一下nginx;
  2. 如果不想在登录界面出现用户自注册的输入界面的话,可以在Admin Area->Settings->Sign-in Restrictions里将Sign-up enabled选项去掉;
  3. 国内的网络大家都懂的,gitlab使用的Gravatar头像时常显示不出来,如果不想用这功能,可以在Admin Area->Settings->Account and Limit Settings里将Gravatar enabled选项去掉;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用docker运行gitlab服务 的相关文章

随机推荐

  • 2、可迭代对象与迭代器

    1 Iterable 可迭代对象 概念 xff1a python中能够使用for循环遍历的都是可迭代对象 1 常见的可迭代对象 1 1 序列如 xff1a list str tuple range 1 2 非序列 xff1a dict se
  • 帮你分清嵌入式与单片机

    从事计算机和或电子行业相关领域工作的朋友 xff0c 一般都听说过单片机和嵌入式 但是要问单片机和嵌入式两者之间有什么联系 xff0c 大多数人都不能很好的解释清楚 想要弄清楚嵌入式和单片机有什么联系 xff0c 首先就要弄明白什么是嵌入式
  • [MM32生态]Python,让嵌入式应用开发更便捷、更高效、更专注

    前言 前面分享了基于PikaScript如何在MM32平台上部署Python开发环境的帖子 xff0c 实现了Python基础开发环境的部署 xff0c 可以通过串口终端软件在线编写Python xff0c 然后直接运行得到结果 通过Pyt
  • [STM32]STM32移植freemodbus实现modbusTCP

    上次说到采用STM32F1移植了FreeModbus协议栈进行开发实现ModBus RTU协议来进行一些线圈寄存器的控制 xff08 继电器开关 xff09 和一些保持寄存器的读写 xff08 参数配置灯 xff09 xff0c 这次说一下
  • FR8012HAQ利用ADC实现检测电池电压检测的解决方案

    今天要跟大家分享的是FR8012HAQ利用ADC实现检测电池电压检测的解决方案 FR8012HAQ是富芮坤的一款通用蓝牙芯片 特性介绍如下图 xff1a 我们再来看FR8012HAQ的PMU xff0c 它强大的地方还在于内置了充电模块 F
  • [单片机芯片]CH32V307驱动单总线温湿度传感器DHT22

    手头有一个DHT22温湿度传感器和CH32V307开发板 xff0c 可玩性极强 DHT22是已校准的数字温湿度传感器 xff0c 用于检测环境温湿度 xff0c 采用DHT22 AM2302 xff0c 标准单总线接口 拥有比常见的DHT
  • RT_Thread好用吗? RT_Thread成国内最成熟开源RTOS?

    RT Thread 是一款主要由中国开源社区主导开发的开源实时操作系统 许可证GPLv2 实时线程操作系统不仅仅是一个单一的实时操作系统内核 xff0c 它也是一个完整的应用系统 xff0c 包含了实时 嵌入式系统相关的各个组件 xff1a
  • [技术讨论]知识科普のARM和STM32之间的纠葛

    一 ARM和STM32的关系 ARM和STM32是两个不同的概念 xff0c ARM是一家英国公司 xff0c 专注于设计和许可处理器架构 xff0c 而STM32是ST公司基于ARM Cortex M内核的一系列微控制器产品 ARM Co
  • 嵌入式经历了哪些发展阶段?这些嵌入式法则你都了解吗?

    为增进大家对嵌入式的认识 xff0c 本文将对嵌入式发展阶段以及嵌入式中的一些法则予以介绍 嵌入式已经是现在的主流系统以及开发手段之一 xff0c 嵌入式工程师更是占据了一席之地 为增进大家对嵌入式的认识 xff0c 本文将对嵌入式发展阶段
  • 【技术分享】GD32硬件I2C调试中的问题与解决过程-续

    使用GD32303C EVAL开发板和MPL3115A2模块测量气压或高度数据 xff0c 两者间使用硬件I2C进行通讯 上次调试发现官方例程 xff08 单一I2C读写功能 xff09 可以正常读写MPL芯片的寄存器 xff0c 而我建立
  • [技术问答]HC32F460 是否有 RTC?在电池供电方案中该如何使用?

    背景 RTC xff0c 学名实时时钟芯片 xff0c 它是日常生活中应用较为广泛 xff0c 不管是消费类还是工业类的电子产品基本都要求带有时钟 日历或闹钟功能 xff0c 它为人们提供精确的实时时间 或者为电子系统提供精确的时间基准 实
  • 2021年本四小厂面试总结

    菜鸡小厂工程师 xff0c 还是徘徊在一万上下 xff0c 希望今年能拿到20k以上 2021 9 4更新 五月 汇丰 xff1a 1 kotlin 的 apply let 有什么区别 返回的是什么参数或者句子 kotlin作用域函数 ru
  • 关于STL的vector与OpenCV的Mat初始化问题记录

    问题情形 xff1a 需要记录不同的两个Opencv的Mat矩阵 xff0c 由于数量是动态确定的 且很可能 gt 4个 xff0c 所以想通过构建cv Mat的容器来保存结果 同时 xff0c 每个Mat必须初始化为0矩阵且分配内存 错误
  • reStructuredText 、Sphinx 资料汇总

    reStructuredText 用 reStructuredText 写作 xff1a 快速入门指南 reStructuredText rst 快速入门语法说明 reStructuredText rst 语法规则快速入门 在线 reStr
  • 300个韩国网站欣赏

    300个韩国网站欣赏 http www homepg co kr http www yoondesign com http www rodingallery org http www toyota co kr HYUNDAI http ww
  • 使用WinRAR来创建分卷压缩包

    因为科研需求 xff0c 需要将数据备份到百度云盘 xff0c 但很多数据量很大 xff0c 单个文件超过了20G xff0c 因此 xff0c 没有办法直接上传到百度云盘上去 xff0c 如下图 为了解决这个问题 xff0c 考虑到经常玩
  • 写论文时优雅的在word中添加程序代码

    一 工具 打开这个网页PlanetB 如下图 xff1a 二 步骤 1 将你需要插入在word中的代码完整的复制到该网站提示的文本框内 xff0c 选择你的代码类型 xff0c 如C C 43 43 HTML等 xff0c 并点击提交 如下
  • stm32中库函数和hal库的区别

    今天在b站看一个关于嵌入式的视频 xff0c 讲述使用stm32cube软件的 了解这些的小伙伴们应该知道STM32CubeMX 是意法半导体推出的图形化配置工具 xff0c 通过傻瓜化的操作便能实现相关配置 xff0c 最终能够生成C语言
  • python+selenium自动化能打开火狐浏览器但是打不开网址

    python 43 selenium 执行自动化脚本时能打开火狐浏览器而打不开网址时 提示 xff1a Unsupported Marionette protocol version 2 required 3 是由版本不兼容导致的 我安装的
  • 使用docker运行gitlab服务

    之前 xff0c 在服务器上直接安装配置过gitlab xff0c 感觉需要配置安装的东西还是挺多的 xff1a git xff0c redis xff0c postgresql xff0c nginx等 这么多服务一起 xff0c 备份和