1、下载镜像

官方镜像地址:https://hub.docker.com/r/gitlab/gitlab-ce ,根据自己需要下载指定版本

[root@vanje-dev01 ~]# docker pull gitlab/gitlab-ce:11.10.-ce.

镜像大小接近2个G,下载速度取决于宿主机网络,耐心等待即可。

2、启动

[root@vanje-dev01 ~]# docker run -d \
     -p 18443:443 \
     -p 18080:80 \
     -p 12222:22 \
     --name gitlab \
     --restart always \
     -v /opt/gitlab/config:/etc/gitlab \
     -v /opt/gitlab/logs:/var/log/gitlab \
     -v /opt/gitlab/data:/var/opt/gitlab \
     gitlab/gitlab-ce:11.10.4-ce.0

-p端口映射,前面为宿主机端口,后面为容器端口;-v 是目录挂载,把容器中gitlab数据进行持久化设置;宿主机目录无需创建,容器运行时,如果对应目录不存在,会默认创建。

3、修改Gitlab访问地址

docker安装gitlab,创建项目时,默认项目URL访问地址显示的是容器主机地址(容器id),所以我们需要修改为一个固定可以外部访问的地址及宿主机地址,这样才可以进行pull/push代码

[root@vanje-dev01 ~]# vim /opt/gitlab/config/gitlab.rb 
### 取消external_url注释,地址为宿主机地址
external_url 'http://172.16.11.248' ## 重载服务
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart

注意:

  1、上面external_url 地址不要加映射的主机端口号,否则会无法访问gitlab。

  2、这样配置在后面添加用户发邮件通知设置密码时,会出现gitlab服务url后面的端口丢失不能正常跳转到gitlab页面,解决这个问题有两种方案:  

方案一:
[root@vanje-dev01 ~]# vim /opt/gitlab/data/gitlab-rails/etc/gitlab.yml
## 把端口号修改为映射的主机端口,默认端口为80
host: 172.16.11.248
port:
https: false ## 不要执行reconfigure命令重新加载,否则端口号还是会变为80,直接重启即可
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart

  还有一种方式就是在容器启动时传递环境变量设置gitlab访问地址及端口,这样也不需要再进行external_url地址修改(推荐使用这种方式) 

方案二:
### 删除之前容器重新创建
[root@vanje-dev01 ~]# docker rm -f gitlab
[root@vanje-dev01 ~]# rm -rf /opt/gitlab/
[root@vanje-dev01 ~]# docker run -d \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://172.16.11.248:18080/';" \
-p : \
-p : \
-p : \
--name gitlab \
--restart always \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:11.10.-ce.

注意:这种方式端口映射时直接就映射为自己想要的端口,因为我们启动时,已经把gitlab在容器内的端口设置为18080了

4、访问

访问地址:http://172.16.11.248:18080

第一次访问会要求我们设置root密码,设置好后登陆即可。

5、设置邮箱

gitlab在实际工作使用中,admin新开账号时,会自动给新账号绑定的邮箱发送通知邮件,点击邮件中的链接进行激活,首次登陆gitlab会进行密码设置

[root@vanje-dev01 ~]# vim /opt/gitlab/config/gitlab.rb 
## 找到以下配置项,取消注释
  gitlab_rails['smtp_enable'] = true
  gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com"
  gitlab_rails['smtp_port'] =
  gitlab_rails['smtp_user_name'] = "****@vanje.com.cn"
  gitlab_rails['smtp_password'] = "****"
  gitlab_rails['smtp_domain'] = "vanje.com.cn"
  gitlab_rails['smtp_authentication'] = "login"
  gitlab_rails['smtp_enable_starttls_auto'] = true
  gitlab_rails['smtp_tls'] = true
  gitlab_rails['gitlab_email_from'] = "****@vanje.com.cn" ## 新增
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure

注意:这里用的是阿里云的邮箱,不同的邮箱需要去看邮箱提供商提供的帮助。

  如果想测试下邮箱设置是否成功,进入gitlab容器执行以下操作:

[root@vanje-dev01 ~]# docker exec -it gitlab /bin/bash
root@f16536597cee:/# gitlab-rails console
irb(main):002:0> Notify.test_email('*****@qq.com', 'Message Subject', 'Message Body').deliver_now
### 说明
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now

这样,再创建用户时,无需设置密码,gitlab会给用户绑定 的邮箱发送邮件,点击设置密码链接,用户即可自己对gitlab账号进行密码设置。

Docker部署Gitlab11.10.4的更多相关文章

  1. 程序开发使用docker部署

    我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...

  2. Docker部署SDN环境

    2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...

  3. Docker部署Elasticsearch集群

    http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...

  4. 如何使用Docker部署一个Go Web应用程序

    熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...

  5. docker部署archery

    一.centos7部署docker 1 通过 uname -r 命令查看你当前的内核版本 uname -r 2  确保 yum 包更新到最新. yum update 3 卸载旧版本 yum remov ...

  6. Docker日志管理--docker部署安装ELK (十一)--技术流ken

    Docker logs 对于一个运行的容器,Docker 会将日志发送到 容器的 标准输出设备(STDOUT)和标准错误设备(STDERR),STDOUT 和 STDERR 实际上就是容器的控制台终端 ...

  7. 一步步学会用docker部署应用(nodejs版)

    一步步学会用docker部署应用 docker是一种虚拟化技术,可以在内核层隔离资源.因此对于上层应用而言,采用docker技术可以达到类似于虚拟机的沙盒环境.这大大简化了应用部署,让运维人员无需陷入 ...

  8. Windows 下 docker 部署 gitlab ci

    一.安装 1. 安装 docker Docker下载 注意:Windows 10 家庭版获取 之前的版本不能直接安装 Docker ,而是需要去安装 Docker Toolbox 我这里安装的是 Do ...

  9. 教你使用docker部署淘宝rap2服务

    什么是rap2 先来说说起因,在上一个星期的分享会上,谈到前后端联调上,有同事提到了rap2,特意去了解了一下,觉得使用这个东西来进行前后端的接口联调来真是太方便了,对比我们之前公司内部开发的API ...

随机推荐

  1. [转]C++ 类中的static成员的初始化和特点

    在C++的类中有些成员变量初始化和一般数据类型的成员变量有所不同.以下测试编译环境为: ➜ g++ -v Using built-in specs. COLLECT_GCC=g++ Target: x ...

  2. pandas记录

    pandas的map方法使用 import pandas as pd import numpy as np data = pd.DataFrame(np.random.randint(0, 10, ( ...

  3. Java的 「 “ 结构体 ”」 与 「 “ 自定义排序 ” 」

    Java里面的结构体可以靠class来实现,如果相对结构体进行排序,需要写一个接口,class 自定义的名字 implements Comparator<结构体(自己定义的class类的名字)& ...

  4. grafana 的配置文件,和使用mysql数据库做持久化

    grafana 配置文件 vim /etc/grafana/grafana.ini 下面有些参数在新版中6.x版本中已经过时,请参考下面官网最新帮助文档为准 https://grafana.com/d ...

  5. c标签页面进行解析json

    JAVA代码中的后台 List<Map<String,String>> rs = new ArrayList<Map<String,String>>() ...

  6. Go by Example-图解数组

    基本概念 1.数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2.在 Go 中因为数组的内存布局是连续的,所以可以通过索引(位置 ...

  7. activemq jmx

    增加: -Djava.rmi.server.hostname=<IP addr>

  8. <JavaScript>使用onmousemove事件实现移动(拖拽)div 出现的关于offsetX的问题

    出现的问题如下图所示(截屏看不出来看log) 再移动鼠标的过程中会不断的出现异常值导致拖动的div不断切换位置,回到左上角. 我以为是冒泡机制导致的所以添加了下面一段阻止冒泡,随便也阻止了默认事件,但 ...

  9. Docs-.NET-C#-指南-语言参考-预处理器指令:#error(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#error(C# 参考) 1.返回顶部 1. #error(C# 参考) 2015/07/20 #error 可从代码中的特定 ...

  10. 简略描述:一个 url 从输入按下回车键,到页面展示出来,都经历了什么?

    首先,在输入网址按下回车以后,这个时候DNS服务器会通过当前的网址去解析网址的 ip: 在查找到真的 IP 以后,这个时候浏览器会向 web 服务器发起一个 tcp 连接请求(三次握手): 第一次:建 ...