[转帖]知乎专栏:正确使用 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 ...
随机推荐
- 转载 多线程实际运用<第七篇>
多线程实际运用<第七篇> 1.单线程采集100个页面 class Program { static int i = 6991275; static void Main(string[] a ...
- metamask-mascara-在线钱包使用
网址为:https://wallet.metamask.io 这是一个在线钱包,可以看见,它是一个测试版的 输入你自己设置的一个密码,然后create 接着就会进入下面这个页面,然后next: 然后a ...
- (转)清除已运行过Rancher和K8S的主机上的环境数据
文章转自 https://blog.csdn.net/CSDN_duomaomao/article/details/77684571?locationNum=5&fps=1 本文命令主要是参考 ...
- JavaWeb界面在线配置代码生成器
关于直接main方法运行生成代码可参考我的这篇文章:MP实战系列(六)之代码生成器讲解 在线配置主要参考jeesite和jeecg,gun等开源项目,但是与它们相比又有很多不同? 与jeesite相比 ...
- 深度:Hadoop对Spark五大维度正面比拼报告!
每年,市场上都会出现种种不同的数据管理规模.类型与速度表现的分布式系统.在这些系统中,Spark和hadoop是获得最大关注的两个.然而该怎么判断哪一款适合你? 如果想批处理流量数据,并将其导入HDF ...
- 4.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—链接到目录
在4.2章中我们已经会用cd进入到指定的目录中.这是导航最常见的用途之一,但是它还有几个值得关注的用途.第一个是使用cd ..(读作'see-dee 点点')返回当前目录级别的上一级: $ pwd / ...
- .NetCore实践篇:分布式监控Zipkin持久化之殇
前言 本系列已写了四篇文章,读本篇之前,可以先读前面几篇. 思考大纲:.Net架构篇:思考如何设计一款实用的分布式监控系统? 实践篇一:.NetCore实践篇:分布式监控客户端ZipkinTracer ...
- 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一orm篇【如EF般丝滑】typeorm介绍(8/8)
文章目录 前情概要 在使用nodejs开发过程中,刚好碰到需要做一个小工具,需要用到数据库存储功能.而我又比较懒,一个小功能不想搞一个nodejs项目,又搞一个后端项目.不如直接在nodejs里面把对 ...
- 挂载银行前置机Ukey到windows server2012虚拟机的操作记录
公司有跟银行对接的金融业务,需要配置银行前置机环境.通过KVM的WebVirtMgr管理平台创建windows server2008虚拟机,安装参考:kvm虚拟化管理平台WebVirtMgr部署-完整 ...
- nginx下目录浏览及其验证功能、版本隐藏等配置记录
工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...