[转帖]知乎专栏:正确使用 Docker 搭建 GitLab 只要半分钟
正确使用 Docker 搭建 GitLab 只要半分钟
https://zhuanlan.zhihu.com/p/49499229
很多程序员在内网搭建 gitlab 都搭建的坑坑洼洼,不支持 https,或者装个 gitlab 就把服务器弄得乱七八糟的,根本不知道该怎么维护和迁移。还有程序员再用最原始的,远程机器上:
git --bare init
然后其他人按照 ssh 的协议来克隆的刀耕火种的方法,还有项目用 php 写 fastcgi 来提供 git 服务。真的有那么麻烦么?正确使用 Docker 搭建 Gitlab 明明就是半分钟的事情。
先建个目录:
sudo mkdir -p /home/data/gitlab/config
新建并编辑文件:/home/data/gitlab/docker-compose.yml
gitlab:
image: gitlab/gitlab-ce:11.3.6-ce.0
restart: always
hostname: '192.168.1.11'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://192.168.1.11:8443'
nginx['redirect_http_to_https'] = true
letsencrypt['enable'] = false
nginx['ssl_certificate'] = "/etc/gitlab/nginx.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/nginx.key"
# Add any other gitlab.rb configuration here, each on its own line
ports:
- 8443:8443
volumes:
- ./data:/var/opt/gitlab
- ./logs:/var/log/gitlab
- ./config:/etc/gitlab
然后在该文件目录下,新建自签名的证书:
sudo openssl req -new -x509 -days 36500 -nodes -out config/nginx.pem \
-keyout config/nginx.key -subj "/C=US/CN=gitlab/O=gitlab.com"
最后再该目录下启动 docker:
sudo docker-compose up
等两分钟,初始化完了,打开浏览器:https://192.168.1.11:8443

忽略自签证书警告,然后 F5 刷新:

搞定了,进去初始化 root 管理员的密码,然后用 root/刚才密码登陆试试。一切正常后就用 "-d" 参数重新运行 docker-compose up 命令,让它常驻后台,自动启动,开始正常使用。
上面初始化管理员密码后,配置好网站,记得还是正常注册个非管理员身份去使用,网站设置好就少用管理员登陆。
Q:用 https 的方式 git clone 仓库提示证书问题?
git config --global http.sslVerify "false"
运行上面命令即可屏蔽自签证书的验证。
Q2:为什么不用 Let's Encrypt 免费证书 ?
Let's Encrypt 的免费证书需要三个月更新一次,它是三个月三个月给你发的,也就是说当你深深依赖上它时,它有权利突然向你提出付费要求,所以我嫌他烦,何况后台还要跑一个它的服务来自动更新证书,简单事情复杂化了。
Q3:怎么改端口?
想改端口,要保证 compose 文件中的 external_url 部分和下面的端口内外映射保持一致,不能内外端口不一致,也要避免下面的端口和上面的 external_url 不匹配。
Q4:怎么备份?
备份或者迁移可以把 config / data 两个目录拷走就行。经常热备份的话,最好还是登陆到容器内用 gitlab-raker 进行标准备份。
然后你就能体会到比 Github 快 10倍的克隆速度,大型项目瞬间 clone/fetch,有没有?
--
补充:评论区介绍轻量级的 GitBucket,我们也可以用 docker 安装一下:
gitbucket:
image: skywind3000/gitbucket:https
restart: always
ports:
- 8080:8080
- 8443:8443
volumes:
- ./data:/var/gitbucket
上面内容保存成 docker-compose.yml ,再同一级目录下运行:
sudo docker-compose up -d
然后本地打开:https://your-ip-address:8443/ 使用 root/root 账号登陆即可,原镜像不支持 https,我做了一个支持 https 的镜像,原来的裸 http 端口 8080 继续保留。
[转帖]知乎专栏:正确使用 Docker 搭建 GitLab 只要半分钟的更多相关文章
- Ubuntu Docker搭建GitLab以及常规配置使用
安装启动实例 1.首先创建一个目录用于存放配置 sudo docker pull docker.io/gitlab/gitlab-ce sudo mkdir -p /root/docker/gitla ...
- 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境
CI/CD[持续化集成/持续化交付] docker搭建Gitlab环境 1.查询并拉取gitlab镜像 docker search gitlab docker pull gitlab/gitlab-c ...
- Docker 搭建 GitLab
Docker 搭建 GitLab 步骤 # 创建目录 mkdir -p /usr/local/gitlab && cd /usr/local/gitlab # 创建映射目录 mkdir ...
- Docker学习系列(三)Docker搭建gitlab的两种方式
一.直接下载docker-ce 1.拉取gitlab/gitlab-ce Randy:~ Randy$ docker pull gitlab/gitlab-ce Using default tag: ...
- docker搭建gitlab服务器(Centos7)
系统环境:CentOS Linux release 7.6.1810 (Core) git版本:gitlab/gitlab-ce 一.安装和启动docker 见HTTPRUNNERMANAGER安装部 ...
- Centos7使用docker搭建gitlab服务器
了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux rele ...
- 使用docker搭建gitlab版本控制系统
1. GitLab 简介 GitLab 是一款基于 git 的开源代码仓库系统 GitLab 与著名的 GitHub 最大的区别就是: 允许我们搭建自己的 git 代码私有仓库,非常方便 2 ...
- 本地docker搭建gitlab, 并配置ldap认证
基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下: 1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...
- docker搭建gitlab、Redmine
本地使用windows,setting里面切换至linux 从Docker图标的右键菜单中选中 “Switch to Linux containers ...” Docker Engine运行在Lin ...
随机推荐
- Python--Windows下安装虚拟环境
为什么需要虚拟环境 在python开发中,我们可能会遇到一种情况:就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突.在这种情况之下,我们就需要一个工具能够将这两 ...
- JS数组的需要注意的问题
一.在js中数组是我们经常使用的数据类型,也为我们提供了很多方法.但是有些方法需要注意使用: 1.indexOf(args):匹配一个数组中与args相等的项的索引位置,如果该数组包含这个匹配项则返回 ...
- 【Codeforces 696D】Legen...
Codeforces 696 D 题意:给\(n\)个串,每个串有一个权值\(a_i\),现在要构造一个长度为\(l\leq 10^{14}\)的串,如果其中包含了第\(i\)个串,则会得到\(a_i ...
- Linux下DHCP服务安装配置
简介 安装配置 一.简介 DHCP (Dynamic Host Configuration Protocol,动态主机管理协议)是一种基于UDP协议且仅限用于局域网的网络协议,主要用途是为局域网内部设 ...
- SkylineGlobe Android 开发 面积计算示例代码
SkylineGlobe Android 开发 面积计算示例代码: 如果之前熟悉SkylineGlobe桌面端的二次开发,看这些代码应该不难理解. package com.skyline.terrae ...
- SkylineGlobe 如何实现绘制圆形Polygon和对图层的圆形范围选择查询
//结束绘制圆形之前,得到Polygon var pos = gPolyObj.Position; var bufferR = gPolyObj.Radius; var cVerticesArray ...
- 零基础入门到精通:Python大数据与机器学习之Pandas-数据操作
在这里还是要推荐下我自己建的Python开发学习群:483546416,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python ...
- 图解IIS8上解决网站第一次访问慢的处理(转载)
本篇经验以IIS8,Windows Server 2012R2做为案例.IIS8 运行在 Windows Server 2012 and Windows 8 版本以上的平台上.IIS中应用程序池和网站 ...
- 解决webapi首次启动速度慢的问题 - z
原理与下面两篇文章提及的相同 https://blog.csdn.net/godcyx/article/details/38517135 http://www.huaface.com/p/12
- Android开发——ListView使用技巧总结(一)
)还有一点就是要控制异步任务的执行频率,因为当用户频繁的上下滑动,会瞬间产生上百个异步任务,会带来无意义的大量的UI更新操作,因此可以考虑在列表滑动时停止进行异步任务,直到列表停下来. //判断列表的 ...