小哥之哥 小哥之哥
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小哥之哥

运维扫地僧
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Kubertenes

  • Prometheus

  • Docker

    • Docker实战

      • Docker 部署Confluence15.2
      • Docker 部署Jira8.1.0
      • Docker 部署Gitlab11.10.4
        • Docker 部署Gitlab11.10.4
          • 1、下载镜像
          • 2、启动
          • 3、修改Gitlab访问地址
          • 4、访问
          • 5、设置邮箱
      • Docker 部署ELK6.6
      • Docker 部署ELK之Sentinl日志报警
      • Docker 部署MySQL5.7.20
      • Apollo分布式Docker部署
      • Docker部署Gitlab 16.2.0
      • Docker部署zookeeper3.6集群
      • Docker部署kafka3.4集群
      • Docker 部署Redis6.2.6
      • Docker构建多架构镜像
    • Docker杂谈

  • 数据库

  • 运维利器

  • 运维
  • Docker
  • Docker实战
tchua
2023-02-01
目录

Docker 部署Gitlab11.10.4

# Docker 部署Gitlab11.10.4

# 1、下载镜像

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

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

镜像大小接近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
1
2
3
4
5
6
7
8
9
10

-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
2
3
4
5
6
7

注意:

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: 18080
    https: false## 不要执行reconfigure命令重新加载,否则端口号还是会变为80,直接重启即可[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart
1
2
3
4

还有一种方式就是在容器启动时传递环境变量设置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 18443:443 \
    -p 18080:18080 \
    -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
1
2
3
4
5
6
7
8
9
10

注意:这种方式端口映射时直接就映射为自己想要的端口,因为我们启动时,已经把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'] = 465
  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
1
2
3
4
5
6
7
8
9
10
11

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

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

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

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

编辑 (opens new window)
上次更新: 2023/03/13, 16:47:57
Docker 部署Jira8.1.0
Docker 部署ELK6.6

← Docker 部署Jira8.1.0 Docker 部署ELK6.6→

最近更新
01
cert-manager自动签发Lets Encrypt
09-05
02
Docker构建多架构镜像
08-02
03
Prometheus数据迁移至VMstorage
08-01
更多文章>
Theme by Vdoing | Copyright © 2023-2024 |豫ICP备2021026650号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式