Docker-Compose部署Gitlab以及Gitlab配置SMTP邮件服务

使用Docker-Compose部署Gitlab

拉取镜像

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

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

编写docker-compose文件

shell 复制代码
##创建容器挂载出来的文件夹
mkdir /gitlab && cd /gitlab
mkdir -p data/{log,opt,etc}
yaml 复制代码
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 复制代码
编写一个Makefile文件
NAME = gitlab

deploy:
        docker stack deploy --with-registry-auth --resolve-image always -c docker-compose.yml $(NAME)

修改ssh与域名配置

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

shell 复制代码
使用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