当前位置:   article > 正文

Docker 部署 GitLab_docker 部署gitlab

docker 部署gitlab

Docker 部署 GitLab

Docker 搭建 GitLab

在这里插入图片描述

安装 GitLab

拉取镜像
docker pull gitlab/gitlab-ce
  • 1

这是 Gitlab 社区版的镜像,开源免费。

查看下载好的镜像:

docker images
  • 1

在这里插入图片描述

新建数据卷目录

如果要修改一个容器的配置或者查看它的日志,需要进入到容器里面,不是很方便。所以通常会给容器挂载数据卷,将容器内的重要目录,映射到宿主机中。创建这些卷可以确保即使容器被删除,数据和配置也不会丢失。

 mkdir -p /usr/local/software/gitlab/config
mkdir -p /usr/local/software/gitlab/logs
/usr/local/software/gitlab
mkdir -p /usr/local/software/gitlab/data
  • 1
  • 2
  • 3
  • 4
运行容器

如果没有域名服务,把wzy-gitlab.com改成虚拟机ip即可

docker run -it \
--hostname wzy-gitlab.com \
--name gitlab \
-p 443:443 -p 80:80 -p 23:22 \
--network wn_docker_net \
--ip 172.18.12.50 \
-v /usr/local/software/gitlab/config:/etc/gitlab \
-v /usr/local/software/gitlab/logs:/var/log/gitlab \
-v /usr/local/software/gitlab/data:/var/opt/gitlab \
-d gitlab/gitlab-ce
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

GitLab 配置

设置用户名密码

第一次访问,会让修改root密码
修改后以root用户登录即可

在这里插入图片描述

# 进入容器内部
docker exec -it gitlab bash
 
# 进入控制台
gitlab-rails console

# root
user=User.find_by_username 'root'
# 修改密码
user.password='12345678'
# 保存
user.save!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

然后使用用户名root,密码12345678即可登录。

汉化

Preferences => Localization

在这里插入图片描述

在这里插入图片描述
点击保存之后刷新页面即可生效。

关闭自动注册

Menu => Admin => Seetings => General => Sign-up restrictions

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
取消勾选后保存即可生效。

创建用户

Menu => Admin => Overview => Users => New User
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

填完必填选项点击 Create user 即可注册用户

设置用户密码

在这里插入图片描述
在这里插入图片描述
设置完成密码后点击保存,即可生效。

GitLab 使用

登录

在这里插入图片描述
首次登录会提示修改密码,回到跳转页面重新登录。

搭建模板项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就可以使用链接下载项目。

如果没有域名服务且使用了域名,需进行一下操作:

# 进入容器
docker exec -it gitlab bash
# 修改配置文件
vi /etc/gitlab/gitlab.rb
  • 1
  • 2
  • 3
  • 4

找到external_url改成external_url 'http://ip地址'

然后在容器中输入gitlab-ctl reconfigure使配置生效

内存占用优化

使用docker stats gitlab查看内存占用

在这里插入图片描述
修改配置文件

# 进入容器
docker exec -it gitlab bash
# 修改配置文件
vi /etc/gitlab/gitlab.rb
  • 1
  • 2
  • 3
  • 4
调整 MALLOC_CONF

找到gitlab_rails['env']修改:

gitlab_rails['env'] = {
	'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'
#    "SKIP" => "db,uploads,repositories,builds,artifacts,lfs,registry,pages"
}
  • 1
  • 2
  • 3
  • 4

MALLOC_CONF: 这个环境变量是为 jemalloc 分配器设置的,jemalloc 是 GitLab
使用的内存分配器。jemalloc 有助于优化内存使用,防止内存碎片化。

dirty_decay_ms:1000: 设置脏页(即已修改过的内存页,需要写回内存的页)的衰减时间。这里设置为 1000 毫秒,意味着
jemalloc 将在内存页变脏后 1 秒尝试回收这些页。 muzzy_decay_ms:1000:
设置模糊页(即已经不再使用,但还没有完全清理的内存页)的衰减时间。同样地,这里设置为 1000 毫秒。
这些设置可以影响内存的回收策略,可能有助于改善内存使用效率和减少内存占用。

禁用 puma cluster 模式

Puma 的设置是用来配置 GitLab 内置的 Puma Web 服务器,这个服务器负责处理 GitLab 的 Web 请求

找到puma['worker_timeout']puma['worker_processes']

puma['worker_timeout'] = 60
puma['worker_processes'] = 0
  • 1
  • 2

puma['worker_timeout'] = 60:
这个配置项设置了 Puma 工作进程在认定为超时之前可以花费的最长秒数。如果一个请求在指定的时间内没有完成,Puma 会认为该工作进程已经卡住,并可能会重启该进程。在这个例子中,worker_timeout 被设置为 60 秒,这意味着如果一个工作进程在 60 秒内没有响应请求,Puma 将会认为它已经超时。
puma['worker_processes'] = 2:
这个配置项指定了 Puma 应该启动的工作进程数。工作进程是独立的操作系统进程,每个进程都可以并行处理 Web 请求。设置多个工作进程可以提高并发处理能力,因为它们可以同时处理多个 Web 请求。在这个例子中,Puma 被配置为启动 2 个工作进程。

调整 sidekiq

找到 sidekiq['max_concurrency']修改:

sidekiq['max_concurrency'] = 10
  • 1

sidekiq['max_concurrency'] = 10 的设定意味着 Sidekiq 被允许同时执行的线程数上限是 10。这就是说,Sidekiq 可以同时处理最多 10 个作业。

重启容器

在容器中输入gitlab-ctl reconfigure使配置生效

然后重启容器gitlab-ctl restart

查看内存占用

docker stats gitlab
  • 1

在这里插入图片描述
可以看到内存占用下降了很多,至此内存占用优化完成。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号