gitlab服务配置方案

  |  

文章导航

服务器上基于docker配置gitlab服务并修改host name全过程记录

Docker配置gitlab

教程:方案

Docker 创建容器后再修改 hostname

参考文档

写作本文的动机

当前使用docker配置的gitlab环境,在打开服务后其http地址并非显示当前服务器IP,而是docker容器的ID。这是因为在初始化容器的时候没有配置hostname,默认就是容器ID。每次发送的邮件里面都长这样:

之前想过很多办法修改,比如说ssh host可以通过配置gitlab.rb解决

下列操作都是在docker容器中进行的。

1
vi /etc/gitlab/gitlab.rb

改了external_url就万事大吉了。

http host网上主流方法都是配置gitlab.yml这种方法不是长久之计!

1
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

改成

这里就存在一个问题,每次服务器断电重启以后,这个文件就被重置了,相应的主机名和端口也变了。http涉及到网页服务和邮件服务,虽然使用git环境远程连接是没有问题的,但是每次收到邮件没有办法直接点进去看,网页端想跳回主页面直接来一个http://adb8725071ce神仙也打不开。

网上有方法是在建立docker容器的时候就设置:

1
docker run --detach --hostname git.imebo.com --publish 8888:80 --publish 10443:443 --publish 10022:22 --name gitlab_web --restart always --volume /home/gitlab/config:/etc/gitlab --volume /home/gitlab/logs:/var/log/gitlab --volume /home/gitlab/data:/var/opt/gitlab docker.io/twang2218/gitlab-ce-zh

使用 --hostname参数直接设置就好,我们没有域名就设置IP地址。但是这种方法需要重新建一个gitlab环境,旧的gitlab现在已经运行了大半年,好多仓库也不能舍掉,所以只有另寻他法。

世上是有后悔药的,只要肯琢磨!再也不用重新创建容器了!

操作过程

1. 查看容器配置文件在宿主机上的位置

1
sudo docker inspect gitlab

复制这个路径

2. 关闭容器、关闭 docker 服务(重要)

查看当前运行的docker进程

1
sudo docker ps

可以看到容器名称、ID、建立时间、端口映射信息。这些都是在建立的时候搞的。

1
2
3
4
5
6
# 关闭容器
sudo docker stop gitlab
# 关闭docker服务
sudo systemctl stop docker
# 查看是否关闭
sudo systemctl status docker

3. 修改宿主机配置文件

  1. cd到刚刚找到的目录下

这里有一个问题,普通用户权限不够,sudo的话显示sudo: cd: command not found

这是因为cd不是一个应用程序而是Linux内建的命令,而sudo仅仅只对应用程序起作用。

使用sudo -i命令提升用户权限

  1. 搜索原 hostname
1
grep "adb8725071ce" *

这三处需要修改

  1. 备份原文件
1
2
3
cp config.v2.json config.v2.json.bak
cp hostname hostname.bak
cp hosts hosts.bak
  1. 使用vi或者vim修改、保存
1
2
3
vi config.v2.json
vi hostname
vi hosts

4. 启动 docker 服务,启动容器

1
2
systemctl start docker
systemctl status docker
1
docker start gitlab

5. 查看 hostname

1
docker exec gitlab hostname

6. 检查是否ok

本站总访问量 您是第位访客