使用Docker-Compose部署Gitlab

拉取镜像

地址: https://hub.docker.com/r/gitlab/gitlab-ce/tags

拉取到镜像后,使用docker tag修改镜像,docker push推送到自己的镜像仓库(内网部署)

编写docker-compose文件

##创建容器挂载出来的文件夹
mkdir /gitlab && cd /gitlab
mkdir -p data/{log,opt,etc}
version: '3'

services:
gitlab:
##image需要替换为自己镜像仓库的gitlab-ce地址
image: dbatest1.ip.tp-link.com:9002/gitlab-ce:latest
volumes:
- /gitlab/data/log:/var/log/gitlab
- /gitlab/data/opt:/var/opt/gitlab
- /gitlab/data/etc:/etc/gitlab
ports:
- "80:80" ##UI管理界面地址映射
- "9009:22" ##ssh协议端口地址映射
编写一个Makefile文件
NAME = gitlab deploy:
docker stack deploy --with-registry-auth --resolve-image always -c docker-compose.yml $(NAME)

修改ssh与域名配置

ps:如果这里不做修改,那么在Gitlab里展示出来的仓库地址都是错误的,是拉取不下来的!以及smtp服务里自动发送的邮件链接里的地址都是容器的地址,点击了根本访问不到!

使用make deploy运行gitlab服务后
去Gitlba服务挂载的文件夹下修改相关配置 /gitlab/data/etc/gitlab.rb
修改以下几行
##这个需要修改为虚拟机上对外开放的ssh端口
gitlab_rails['gitlab_shell_ssh_port'] = 9009
##这个需要修改为gitlab所在虚拟机的域名(如果是固定在单节点就这样写,容器自由编排就不能这么写)
gitlab_rails['gitlab_ssh_host'] = 'dbatest1.ip.tp-link.com'
##这个和上一个一样,需要修改为虚拟机域名以及UI界面访问的端口,默认是80,不同则需修改
external_url 'http://dbatest1.ip.tp-link.com' 修改完后重启服务
docker service update --force gitlab_gitlab

增加SMTP邮件服务

如果想要邮件来通知管理员以及使用者各种更新,需要配置SMTP参数

去Gitlba服务挂载的文件夹下修改相关配置 /gitlab/data/etc/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.tp-link.com.hk" ##邮件服务器地址
gitlab_rails['smtp_port'] = 587 ##端口
gitlab_rails['smtp_user_name'] = "yapi@tp-link.com.hk" ##发送邮件的邮箱
gitlab_rails['smtp_password'] = "xxxxxxxxxxx" ##密码
gitlab_rails['smtp_domain'] = "mail.tp-link.com.hk" ##邮件服务器地址
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_pool'] = false gitlab_rails['gitlab_email_from'] = 'notifications.yapi@tp-link.com.hk' ##发送邮件的邮箱 修改完后重启服务
docker service update --force gitlab_gitlab

Docker-Compose部署Gitlab以及Gitlab配置SMTP邮件服务的更多相关文章

  1. Docker Compose 部署GitLab

    先决条件 Docker Engine和Docker Compose是必需的.请参阅在CentOS上安装Docker Engine. 建议使用4核的服务器,同时至少分配4G的内存,理论上4核4G可最多支 ...

  2. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  3. Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  4. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  5. 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  6. 使用Docker Compose 部署Nexus后提示:Unable to create directory /nexus-data/instance

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  7. Docker Compose 部署 Redis 及原理讲解 | 懒人屋

    原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解  4.4k  字    16  分钟    2019-10-1 ...

  8. Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana)收集日志

    简述 本文用于记录如何使用Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana) 收集Docker容器日志,使用EFK,可以无侵入代码,获得灵活, ...

  9. 基于Docker Compose部署分布式MinIO集群

    一.概述 Minio 是一个基于Go语言的对象存储服务.它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片.视频.日志文件.备份数据和容器 ...

  10. 使用Docker Compose部署基于Sentinel的高可用Redis集群

    使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...

随机推荐

  1. SpringBoot3分库分表

    标签:ShardingSphere5.分库.分表: 一.简介 分库分表的设计和实现方式,在之前的内容中总结过很多,本文基于SpringBoot3和ShardingSphere5框架实现数据分库分表的能 ...

  2. Facade Pattern and Encapsulation—— Structure Class

    如果只看代码的话,应该可以说Facade pattern(门面设计模式)是一种最简单的代码结构,不就封装吗!这玩意谁不会! 还是看它背后所蕴含的思想吧,看了之后发现背后的思想也很简单,非常好理解. - ...

  3. 《Kali渗透基础》04. 主动信息收集(一)

    @ 目录 1:主动信息收集 2:发现 3:二层发现 3.1:arping 3.2:nmap 3.3:netdiscover 3.4:Scapy 4:三层发现 4.1:ping 4.2:Scapy 4. ...

  4. Mysql基础9-事务

    一.事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有操作作为一个整体一起向系统提交或者撤销操作请求,即这些操作要么同时成功,要么同时失败.mysql的事务默认是自动提交的,也就 ...

  5. SQL Server用户的设置与授权

    SQL Server用户的设置与授权 SSMS 登陆方式有两种,一是直接使用Windows身份验证,二是SQL Server身份验证.使用SQL Server用户设置与授权不仅可以将不同的数据库开放给 ...

  6. Ionic 整合 pixi.js

    最近做了个app,上线google play不大顺利,说是有假冒行为,然后改了下icon和名字以及描述,但是没啥信息去上,于是暂时放下搞点别的. 因为近期看到个比较有趣的绘图创意, 于是想通过ioni ...

  7. Teamcenter RAC 开发之《Excel模版导出》

    背景 在做 Teamcenter RAC客制化表单后,TMD肯定有一个需求要导出表单,毕竟所谓的客制化表单就是从纸质表单中出来的,那么写代码必不可少......... 那么问题来了,对于一个Excel ...

  8. 宏观上理解blazor中的表单验证

    概述 表单验证的最终效果大家都懂,这里不阐述了,主要从宏观角度说说blazor中表单验证框架涉及到的类,以及它们是如何协作的,看完这个,再看官方文档也许能更轻松点. blazor中的验证框架分为两部分 ...

  9. 20个最佳实践提升Terraform工作流程|Part 2

    在上一部分,我们一同探讨了构建 Terraform 项目的一些策略,以及使用 Terraform 管理 IaC 的部分最佳实践.今天,我们将继续深入研究将 Terraform 代码提升到新水平的具体要 ...

  10. 看完这篇HTTP,跟面试官扯皮就没问题了(转)

    认识 HTTP 首先你听的最多的应该就是 HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),这你一定能说出来,但是这样还不够,假如你是大厂面试官,这不可能是他 ...