[转帖]知乎专栏:正确使用 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 ...
随机推荐
- go标准库的学习-net/rpc
参考:https://studygolang.com/pkgdoc 导入方法: import "net/rpc" RPC(Remote Procedure Call Protoco ...
- 区分Web Server和应用服务器
一般的信息服务系统架构如下图所示: Web Server:提供Web信息浏览服务,主要处理的静态资源(session,request,js,html,cs等),如响应http请求,响应请求返回静态ht ...
- select * 和select 所有字段的区别
文章取自http://blog.csdn.net/u014305991/article/details/44964171 MySQL 5.1.37 表记录数41,547,002,即4000w行 使用远 ...
- spring MVC 使用 hibernate validator验证框架,国际化配置
spring mvc使用hibernate validator框架可以实现的功能: 1. 注解java bean声明校验规则. 2. 添加message错误信息源实现国际化配置. 3. 结合sprin ...
- Git-本地项目和远程项目关联
此处记录将本地项目与码云仓库关联步骤 1. 本地 Git 配置 配置一下一些基本的信息 $ git config--global user.name "Your Name" $ g ...
- IDEA中使用vim删除复制代码的行号
从别的地方复制来的源代码有时候会把前面的行号也一起拷过来,如果只是十几行代码的话手工去除还是方便的,但是如果代码有很多行的话,一行一行地删就不明智了. 例如我要复制以下代码 1 public clas ...
- CF1097F Alex and a TV Show 莫比乌斯反演、bitset
传送门 发现自己对mobius反演的理解比较浅显-- 首先我们只需要维护每一个数的出现次数\(\mod 2\)的值,那么实际上我们只需要使用\(bitset\)进行维护,每一次加入一个数将其对应次数异 ...
- (转)Putty server refused our key的三种原因和解决方法
原文 上一篇博文介绍了使用Putty免密码登录,我后面试了另一台虚拟机,结果putty显示错误server refused our key(在linux下则表现为仍需要输入密码),搜索了下,很多人都遇 ...
- JSON WEB TOKEN,简单谈谈TOKEN的使用及在C#中的实现
十年河东,十年河西,莫欺少年穷. 学无止境,精益求精. 突然发现整个十月份自己还没有写一篇博客......哎,说出来都是泪啊,最近加班实在实在实在是太多了,真的没有多余的时间写博客.这不,今天也在加班 ...
- HDU 1109 Run Away
题目大意:给一个矩阵的长宽,再给n个点,求矩阵区域内某个点到各个点的最小距离的最大值,输出所求点的坐标 这道题我还是写了随机化乱搞,不过由于比较懒于是就没有写模拟退火,不过也是可以AC的 我们先初始随 ...