docker安装gitlab如何修改配置

2020-12-13 19:46:42

参考地址 docker安装配置gitlab详细过程

获取镜像

1、方法一

1
docker pull beginor/gitlab-ce:11.0.1-ce.0

2、方法二
如果服务器网路不好或者pull不下来镜像,只能在其它网路比较好的机器上pull下来镜像,导出成一个文件,
再下载上传到网路不好的机器上,然后再从文件中导出来,这样在网络不好的机器上也能使用docker镜像了。

 

运行

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

1
2
3
mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data

2、准备好这三个目录之后, 就可以开始运行 Docker 镜像了。 我的建议是使用unless-stopped 作为重启策略,
因为这样可以手工停止容器, 方便维护。

完整的运行命令如下:

1
2
3
4
5
6
7
8
9
10
docker run \
    --detach \
    --publish 8443:443 \
    --publish 8090:80 \
    --name gitlab \
    --restart unless-stopped \
    -v /mnt/gitlab/etc:/etc/gitlab \
    -v /mnt/gitlab/log:/var/log/gitlab \
    -v /mnt/gitlab/data:/var/opt/gitlab \
    beginor/gitlab-ce:11.0.1-ce.0

 配置GitLab主机名

1、修改/mnt/gitlab/etc/gitlab.rb

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

1
vim /mnt/gitlab/etc/gitlab.rb

 

 2、修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

1
vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

找到关键字 * ## Web server settings * 

将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址

到此为止,gitlab的web管理页面就可以正常访问

如果还是不能正常访问的话,检查端口是否被占用?

端口被占用(这里不做)

如果端口号被占用,改了默认的80端口,后面要接端口号

1
external_url 'http://192.168.182.129:8090' 注:这里容器内没改,只是映射到8090

修改NGINX监听的端口为9999

1
2
nginx['listen_addresses'] = ['*']
nginx['listen_port'] = 8090

如果8080端口被Tomcat占用,会出现502的页面

因此需要修改unicorn的配置,如下

1
2
3
4
5
6
7
### Advanced settings
# unicorn['listen'] = '127.0.0.1'
# unicorn['port'] = 8080
 
# 假设有Tomcat占用了8080,因此改为8082试一试
 unicorn['listen'] = '127.0.0.1'
 unicorn['port'] = 8082


修改Gitlab数据存储路径(这里不做)

默认的Gitlab数据存储路径,在目录/var/opt/gitlab/git-data下,防止以后数据过大,所以可以修改路径存储为/data/gitlabData

1
2
3
4
5
6
vim /mnt/gitlab/etc/gitlab.rb
### For setting up different data storing directory
###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory
###! **If you want to use a single non-default directory to store git data use a
###!   path that doesn't contain symlinks.**
# git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } })
1
2
#edited by ouyangpeng 2017-8-10  配置gitlab的数据存储位置为/data目录下,保证硬盘安全
git_data_dirs({ "default" => { "path" => "/data/gitlabData" } })

设置完后,过一段使用时间,可以看到该目录下的resposities

配置并启动GitLab

像上面步骤修改了GitLab的ip地址一样,临时修改了GitLab的配置之后,得执行如下的命令,应用重新配好的配置并重启GitLab,然后查看GitLab的状态。

因为是容器,所以要进入到gitlab容器中执行命令

1
docker exec -ti gitlab /bin/bash

然后

1
2
3
gitlab-ctl reconfigure  #花时间比较多
gitlab-ctl restart    #改IP重启就可以了
gitlab-ctl status

登陆

打开浏览器,输入本机的ip地址并登陆

1
http://192.168.182.129:8090

  默认帐户的用户名是root,第一次访问时,将被重定向到密码重置屏幕,登录后,您可以更改用户名。

常用的几个Gitlab命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 重新应用gitlab的配置
gitlab-ctl reconfigure
 
# 重启gitlab服务
gitlab-ctl restart
 
# 查看gitlab运行状态
gitlab-ctl status
 
#停止gitlab服务
gitlab-ctl stop
 
# 查看gitlab运行日志
gitlab-ctl tail
 
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki

 

 错误

1、docker启动报错信息如下

1
Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen<strong>解决:</strong>

解决

检查docker端口映射是否冲突
重启docker服务后再启动容器

1
2
systemctl restart docker
docker start gitlab

 

参考文档

docker安装中文版的gitlab
https://hub.docker.com/r/beginor/gitlab-ce/


  • 2019-10-19 16:35:45

    Vue.directive使用注意

    首先,Vue.directive要在实例初始化之前,不然会报错,还有,定义的指令不支持驼峰式写法,也会报下面同样的错,虽然在源码中没有找到在哪里统一处理大小写,但是在有关directive的方法中捕捉到的指令命名统一变为小写,所以,还是用'-'或者'_'分割吧。

  • 2019-10-21 08:39:54

    vue slot用法以及使用介绍

    通过上面的内容可以知道,在slot组件中引入了slot的子组件,而且又在子组件标签内添加了新的标签内容,但页面上并没有将子组件标签内的标签内容显示出来,

  • 2019-10-21 15:06:27

    yarn详细入门教程

    Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 npm 面临的少数问题,即:

  • 2019-10-23 10:20:48

    php 去掉 头尾 空格 2种方法

    看似很简单的问题,其实还是有点坑的,首先这里&nbsp;空格转义,不是字符串,直接用trim()是去不掉。

  • 2019-10-23 23:25:22

    PostMapping,GetMapping不固定路径的写法

    PostMapping中的value属性是数组,所以可以定义多个路径,required属性默认是true,不必再写required=true,默认表示该参数是必须要有的,如果写required=false,表示该参数是可选的,可有可无。

  • 2019-10-24 01:14:29

    通过属性搜索商品mysql设计

    属性是可以动态扩展的,问题:属性是搜索条件 问:请展示出 材质为塑料 防水为YES,颜色为绿色的商品详细信息,按照sort_filed排序

  • 2019-10-25 15:18:18

    Vue.use Vue.prototype区别

    1、不是为了vue写的插件(插件内要处理)不支持Vue.use()加载方式 2、非vue官方库不支持new Vue()方式 3、每一个vue组件都是Vue的实例,所以组件内this可以拿到Vue.prototype上添加的属性和方法。

  • 2019-10-25 23:33:45

    php制作漂亮的随机颜色标签云效果

    代码中的array里面的字符串就是各种随机色的编码,大家可以根据自己的需求来配置颜色。 然后input1里面是字体大小的随机代码,也可以自行修改。