Ubuntu Docker 简单安装 GitLab
相关博文:
服务器版本 Ubuntu 16.04 LTS。
1. 安装和配置
安装命令:
sudo docker run --detach \
--hostname 40.125.206.47 \
--publish 443:443 --publish 80:80 --publish 8888:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
参数说明:
--detach
: 设置容器后台运行--hostname
: 设置容器的 hostname--publish
: 端口转发规则(80
:Http 访问端口,443
:Https 访问端口,8888
:主机的 ssh 访问端口,22
:Docker 容器中 ssh 访问端口)--name
:容器名称--restart always
:每次启动容器就重启GitLab--volume
: 共享目录挂载,即 docker 容器内外数据共享(/srv/gitlab/data
: 应用程序数据,/srv/gitlab/logs
:GitLab 的 log,/srv/gitlab/config
:GitLab 的配置文件)--e
:配置 Gitlab 运行的环境变量
安装成功之后,编辑vim /srv/gitlab/config/gitlab.rb
,修改(默认22
修改为8888
):
gitlab_rails['gitlab_shell_ssh_port'] = 8888
配置修改后,就可以重启 Gitlab 容器了:docker restart gitlab
,容器重启 Gitlab 也会进行重启。
浏览器打开:http://40.125.206.47,完成 Gitlab 初始密码操作。
然后就可以克隆和修改项目了(team
为 Group 名称):
git clone ssh://git@40.125.206.47:8888/team/hwapp.git
2. 邮箱配置
接着进行 Gitlab 的邮箱配置,需要配置 SMTP,官方配置示例:SMTP settings
我使用的是 QQ 企业邮箱,配置示例:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@xxx.com"
gitlab_rails['smtp_password'] = "xxxx"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
# gitlab_email_from 为邮件发送账号,gitlab_email_display_name 为邮件发送人名称
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xishuai@aiqinhaigou.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab-notify'
# gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
3. 更新版本
邮箱配置好之后,重启 Gitlab 容器,我们可以进入 Gitlab 容器,进行邮件发送测试(发送标题和正文不能包含中文):
// 进入容器
$ docker exec -it gitlab bash
// 进入控制台
$ gitlab-rails console
// 发送测试邮件
$ Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
发送成功结果:
最后,更新 Gitlab 到最新版本命令(数据和配置不会发生变化):
// 停止 gitlab 容器
$ sudo docker stop gitlab
// 删除 gitlab 容器
$ sudo docker rm gitlab
// 拉取最新的 gitlab 镜像
$ sudo docker pull gitlab/gitlab-ce:latest
// 重新执行一开始的安装命令
参考资料:
- 用 Docker 安装 Gitlab
- docker-gitlab 部署
- Docker 教程
- .Net & Docker(二)5分钟快速用 Docker 部署你自己的 GitLab
- GitLab CE 搭建小结(推荐)
- gitlab 邮箱配置小结(推荐)
- GitLab Docker images(推荐)
Ubuntu Docker 简单安装 GitLab的更多相关文章
- Centos + docker,Ubuntu + docker介绍安装及详细使用
docker笔记 常用命令 设置docker开机自启:sudo chkconfig docker on 查所有镜像: docker images 删除某个镜像:docker rmi CONTAINER ...
- Ubuntu+docker+jenkins安装详细指南
最近项目上开始实行自动化测试,避免不了与jenkins等持续集成工具打交道,今天就给大家分享一下有关jenkins的简单安装和使用 1,准备环境 (1)ubuntu系统 (2)docker (3)je ...
- docker简单安装
docker的安装官网有很直接的教程,直达链接: Ubuntu:https://docs.docker.com/engine/install/ubuntu/ CentOS:https://docs.d ...
- Ubuntu 16.04 安装Gitlab
这里选用Ubuntu16.04系统 安装Gig sudo apt-get install git 安装gitlab 1,安装依赖包,运行如下命令 sudo apt-get install curl o ...
- docker 下安装gitlab
1.找到docker镜像 docker search gitlab 2.下载gitlab镜像 docker pull gitlab/gitlab-ce/ 3.通常会将 GitLab 的配置 (etc ...
- docker 简单安装java web项目
前言: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行 ...
- ubuntu docker inflxudb(安装 使用 备份 还原 以及python编码) telegraf Grafana
inflxudb1.7.7 1.拉取最新的镜像 docker pull influxdb 2.运行实例: docker run -d --restart=always -p 8086:8086 -p ...
- ubuntu docker的安装和使用
Docker CE for Ubuntu Docker CE for Ubuntu is the best way to install the Docker platform on Ubuntu L ...
- Docker下安装GitLab
1.需要先安装Docker和Docker Compose,参考:https://www.cnblogs.com/hackyo/p/9280042.html 2.配置GitLab SSL(可跳过): m ...
随机推荐
- 元组-tuple功能介绍
#元组 不可变类型 相当于只读的列表,不可被修改,不可被修改哦 ##创建元组最后加,最后加, 形成良好的习惯 """ tuple() -> empty tuple ...
- Jsp页面用table表格来让文字和文本框对齐
1, border="0" cellpadding="0" cellspacing="20", 第一个是页边距要设置0,第二个是用来指定单元 ...
- 用java调用oracle存储过程总结
以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...
- Android之圆点导航的两个案例(ViewPager)
案例一效果: 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
- nyoj_1022:合纵连横(并查集删点)
题目链接 参考链接 只附代码好了 #include<bits/stdc++.h> using namespace std; ; int a[N],b[N],vis[N]; int n,m, ...
- 如何通过android代码获取LTE信息?
最近为了成功得到LTE的信号强度,尝试了很多种方法: (1)通过解析signalstrength字符串,但是不同手机设备获得的字符串排列顺序不同,代码如下: private PhoneStateLis ...
- 如何得到iPhone手机的UUID
背景 测试ad-hoc打包方式打出来的包,必须在证书里面配置手机的uuid才能安装. 这样就需要获取iPhone手机的uuid来进行证书配置 一般来说iPhone手机可以安装通过Apple发布的软件. ...
- plsql 数据迁移——导出表结构,表数据,表序号
场景:项目开发完之后要部署在不同的环境进行测试,这时候就需要将数据库中的表结构,序号,数据进行迁移,这时候就需要能够熟练的使用plsql. 问题: 导出的表结构,在另一个数据库中无法导入 部分表的数据 ...
- (转)java中对集合对象list的几种循环访问总结
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一 ...
- (转)JAVA堆栈操作
java.util.Queue用法(是util中的一个接口) 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行 ...