CentOS7 Docker安装Gitlab

官方教程
https://docs.gitlab.com/omnib...

搜索镜像

docker search gitlab

下载镜像文件

docker pull docker.io/gitlab/gitlab-ce

创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

mkdir -p /data/gitlab/etc
mkdir -p /data/gitlab/log
mkdir -p /data/gitlab/data

运行GitLab容器
注意http端口8090要和宿主机映射一致,否则后面http方式clone端口配不好
--hostname x.x.x.x 改成服务器IP

docker run \
--detach \
--publish 10222:22 \
--publish 8090:8090 \
--publish 10443:443 \
--hostname x.x.x.x \
-v /data/gitlab/etc:/etc/gitlab \
-v /data/gitlab/log:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
-v /etc/localtime:/etc/localtime:ro \
--name gitlab \
--restart always \
--privileged=true gitlab/gitlab-ce:latest 

运行成功之后,将挂载文件同步到容器外面

修改/data/gitlab/etc/gitlab.rb

把external_url改成部署机器的域名或者IP地址

vim /data/gitlab/etc/gitlab.rb

# 修改http clone时显示的端口
external_url 'http://x.x.x.x:8090'
...
# 修改ssh clone时显示的端口
gitlab_rails['gitlab_shell_ssh_port'] = 10222

image.png

修改/data/gitlab/data/gitlab-rails/etc/gitlab.yml
这个文件改了没什么暖用, 会被gitlab.rb覆盖, (这一步原本不是必须的,因为gitlab.rb内配置会覆盖这个,为了防止没有成功覆盖所以我在这里进行配置,非docker运行gitlab的话你也可以选择不修改gitlab.rb直接修改这里)
vim /data/gitlab/data/gitlab-rails/etc/gitlab.yml
找到关键字 ## Web server settings
image.png

我们进到目录再看一下挂载文件是否同步到外面来了

[root@VM-0-16-centos gitlab]# ls /data/gitlab/*
/data/gitlab/data:
alertmanager  backups  bootstrapped  gitaly  git-data  gitlab-ci  gitlab-exporter  gitlab-rails  gitlab-shell  gitlab-workhorse  grafana  logrotate  nginx  postgres-exporter  postgresql  prometheus  public_attributes.json  redis  trusted-certs-directory-hash

/data/gitlab/etc:
gitlab.rb  gitlab-secrets.json  ssh_host_ecdsa_key  ssh_host_ecdsa_key.pub  ssh_host_ed25519_key  ssh_host_ed25519_key.pub  ssh_host_rsa_key  ssh_host_rsa_key.pub  trusted-certs

/data/gitlab/log:
alertmanager  gitaly  gitlab-exporter  gitlab-rails  gitlab-shell  gitlab-workhorse  grafana  logrotate  nginx  postgres-exporter  postgresql  prometheus  puma  reconfigure  redis  redis-exporter  sidekiq  sshd
[root@VM-0-16-centos gitlab]# 

这个时候我们把容器停止再删除,然后重启服务

[root@localhost ~]# docker stop [容器ID]
[root@localhost ~]# docker rm [容器ID]
[root@localhost ~]# systemctl restart docker

再来重新创建容器
--hostname x.x.x.x 改成服务器IP

docker run \
--detach \
--publish 10222:22 \
--publish 8090:8090 \
--publish 10443:443 \
--hostname x.x.x.x \
-v /data/gitlab/etc:/etc/gitlab \
-v /data/gitlab/log:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
-v /etc/localtime:/etc/localtime:ro \
--name gitlab \
--restart always \
--privileged=true gitlab/gitlab-ce:latest 

启动可能需要几分钟, 耐心等等, 可以使用如下命令查看启动状态

查看容器状态
docker container list
# 查看容器日志
docker logs --tail=10 -f gitlab

网页访问8090端口, 初始用户为root, root初始密码见vim /data/gitlab/etc/initial_root_password

其他问题

如果initial_root_password密码无法登录,可以重置密码:
gitlab-rake "gitlab:password:reset[root]"
执行上面命令后等待一会,进行2次密码确认输入,修改成功就可以新密码登录了。

写BUG

10 声望
4 粉丝
0 条评论
推荐阅读
Java开启JMX远程监控
参数说明:不开启SSL-Dcom.sun.management.jmxremote.ssl=false不开启密码验证-Dcom.sun.management.jmxremote.authenticate=false

YYGP阅读 157

花了几个月时间把 MySQL 重新巩固了一遍,梳理了一篇几万字 “超硬核” 的保姆式学习教程!(持续更新中~)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

民工哥14阅读 2.1k

封面图
硬卷完了!MongoDB 打怪升级进阶成神之路( 2023 最新版 )!
前面我们学习:MySQL 打怪升级进阶成神之路、Redis 打怪升级进阶成神之路,然后我们还在继续 NoSQL 的卷王之路。从第一篇文章开始,我们逐步详细介绍了 MogoDB 基础概念、安装和最基本的CURD操作、索引和聚合、工...

民工哥7阅读 800

封面图
突破难关:Docker镜像和容器的区别以及构建的最佳实践
Docker 可谓是开启了容器化技术的新时代,现在无论大中小公司基本上都对容器化技术有不同程度的尝试,或是已经进行了大量容器化的改造。伴随着 Kubernetes 和 Cloud Native 等技术和理念的普及,也大大增加了业务...

张晋涛4阅读 1.2k

封面图
Aliyun-使用Docker方式安装Jenkins
之前自己在阿里云ECS上面安装了Jekins(安装jenkins的文章),最近因为服务器中了挖矿木马于是准备重新安装一下,但是想到每次安装jenkins都要手动安装jdk、maven、docker、kubectl,感觉好麻烦,于是使用官方推荐...

Awbeci2阅读 2.1k

Win10 安装Docker以及Jenkins(超级详细篇)
安装Docker下载地址:[链接] ,按照它的指引教程,无脑下一步即可。安装成功后电脑会重启。打开docker桌面端,会显示进入链接,下载WSL 安装包进行无脑安装即可。安装 Linux 内核更新包 (重启电脑)重启 Docker ...

九旬3阅读 1.1k

蚂蚁安全科技 Nydus 镜像加速实践
蚂蚁安全科技 Nydus 镜像加速实践原创 曦栖 金融级分布式架构文|蚂蚁集团 ZOLOZ 团队使用全球领先安全科技,为用户和机构提供安全、便捷的安全风控解决方案。本文 6386 字 阅读 12 分钟背景简介ZOLOZ[1]是蚂蚁集...

SOFAStack1阅读 3.8k

封面图

写BUG

10 声望
4 粉丝
宣传栏