基于Docker搭建Gitlab
2019独角兽企业重金招聘Python工程师标准>>>
安装Docker
curl -sSL https://get.docker.com/ | sh
安装Gitlab
sudo docker run --detach \--hostname gitlab.example.com \--publish 443:443 --publish 80:80 --publish 22: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
参数说明:
--hostname :设置主机名
--publish :将需要的端口开放(https:443,http:80,ssh:22)
--name :容器名称 方便后面操作
--volume :挂载目录
--detach :后台执行
--restart :容器遇到问题时重启
请注意
/srv/gitlab
目录所在位置,即内容保存位置,可在升级/迁移时不丢失数据。在配置目录时,请注意docker或者其组具有文件的执行写入等权限,如果遇到LinuxACL
问题,请尝试sudo setfacl -mR default:group:docker:rwx /srv/gitlab
修复
如果
sshd
已经占用22
端口,则需要变更--publish 221:22
,并同时配置gitlab_rails['gitlab_shell_ssh_port'] = 221
请注意更换主机名
启动容器后,可以通过sudo docker logs gitlab
获得容器的控制台日志。
配置Gitlab
配置
gitlab
有两种方法:第一种在启动docker是携带--env
参数;第二种修改config
下的gitlab.rb
文件。
ENV参数
在启动docker时,携带--env
环境变量GITLAB_OMNIBUS_CONFIG
可以在镜像启动时加载配置信息,但不会写入gitlab.rb
配置文件。
示例:
sudo docker run --detach \--hostname gitlab.example.com \--env GITLAB_OMNIBUS_CONFIG="external_url 'http://my.domain.com/';\r\ngitlab_rails['lfs_enabled'] = true;" \--publish 443:443 --publish 80:80 --publish 22: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:lates
--env GITLAB_OMNIBUS_CONFIG=
参数,后面的内容,为gitlab.rb
中可配置内容,比如安装Gitlab
时配置sshd
端口
请注意更换
external_url
的域名
请注意:由于ENV是容器生成是写入的,所以重新
start
或者sudo docker restart gitlab
是无效的。
修改配置文件
修改挂载到/srv/gitlab/config
的gitlab.rb
文件。
然后重启容器:
sudo docker restart gitlab
容器重新启动会重新加载配置文件,这里不同于
--env
配置
升级Gitlab到最新的版本
随着时间的迁移,gitlab会出现版本的更新(版本帝),在容器中我们并不方便对内部程序进行升级,然后我们却有着更方便的方法,重新更新镜像,生成容器。
因为配置文件或环境变量的配置是不随容器移除而丢失的,所以我们并需要重新配置(只更新镜像后重新生成容器即可。)
停止现有容器
sudo docker stop gitlab
如果在创建容器是没有设置
--name
字段,请通过docker ps
获取容器id或名称,并将gitlab
更换成对应的内容。 移除时同样如此!
移除现有容器
sudo docker rm gitlab
更新最新镜像
sudo docker pull gitlab/gitlab-ce:latest
再次创建容器
sudo docker run --detach \--hostname gitlab.example.com \--publish 443:443 --publish 80:80 --publish 22: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
为了保持配置的一致性,如果你是通过
EVN的方式配置的
,再次创建容器时,你仍应采用最初创建时一直的命令。
更新容器后,有机率会遇到500
错误,请尝试sudo docker restart gitlab
重启,如若仍有问题,请尝试修复权限:
sudo docker exec gitlab update-permissions
sudo docker restart gitlab
TODO
Gitlab Runners
docker-compose
链接
- GitLab Docker images
- 传入电子邮件
转载于:https://my.oschina.net/dingdayu/blog/1631108
基于Docker搭建Gitlab相关推荐
- 基于Docker搭建Gitlab代码存储
关于Docker搭建Gitlab,在19年时就已经在博客发过文章了,今天重新回顾一下. 1.拉取镜像 docker pull gitlab/gitlab-ce 默认拉取最新版本: 2.创建Gitlab ...
- 基于Docker搭建GitLab代码管理
关于Git.SVN的优缺点就不再重复了,本篇主要以实际搭建为主. 1.下载镜像文件 在命令行窗口执行如下指令,预计下载完成4分钟. docker pull beginor/gitlab-ce:11.0 ...
- 基于Docker搭建GitLab环境
GitLab占用内存较大,虚拟机内存建议设置在2G以上. 一.环境搭建 一.下载镜像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 注意:一定要配置阿里云的加 ...
- 基于Docker搭建私有镜像仓库
通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是 ...
- docker 启动容器的时候没-p 后面怎么加-p_基于Docker搭建基础自动化部署
阅读本文约需要7分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下SpringBoot如何实现全链路调用 ...
- Docker搭建 Gitlab CI Runner
文章目录 Docker搭建 Gitlab CI Runner 拉取 gitlab-runner 镜像 启动 gitlab-runner容器 注册runner 定义项目构建流程 获取日志 停止并删除现有 ...
- gitlab使用_如何在正确使用 Docker 搭建 GitLab
很多程序员在内网搭建 gitlab 都搭建的坑坑洼洼,不支持 https,或者装个 gitlab 就把服务器弄得乱七八糟的,根本不知道该怎么维护和迁移.还有程序员再用最原始的,远程机器上: git - ...
- docker搭建gitlab
docker搭建gitlab 在服务器上直接安装gitlab,会装入Git,Redis ,postgresql,nginx等.如果主机已有redis.nginx等,配置会比较麻烦.而且以后gitlab ...
- 基于 Docker 和 GitLab 的前端自动化部署实践笔记
基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
- 使用docker搭建gitlab服务器
使用docker搭建gitlab服务器 一.查看当前dokcer环境 二.安装docker-compose 三.编辑yaml文件 1.创建目录及yaml文件 2.编辑ymal文件 四.生成自签名证书文 ...
最新文章
- VC++向txt文件中写入字符串
- C#中提供的精准测试程序运行时间的类Stopwatch
- 用php生成html文件,怎样用PHP生成html文件
- java 获取打印机缺纸_第三章软件
- Oracle关于TX锁的一个有趣的问题
- 线性代数之行列式基础点
- 高级转录组分析和R语言数据可视化课程全部转为视频课
- java-抽象类和接口对区别
- Multi-Armed Bandit--基于时变多臂老虎机的在线上下文感知推荐
- SQL Server 2014安装图解
- java多台_java多态
- SQL Server 2008安装
- matlab平差实习报告,《测量平差》课程设计实习报告 五星文库
- SaaS是Software-as-a-Service(软件即服务)
- 电信悦meYMB0300-CW-卡刷-刷机固件
- 正则表达式中问号(?)的用法详解
- Django中models模型(操作数据库)
- Xmake v2.7.1 发布,更好的 C++ Modules 支持
- 中软国际实习 dzy15
- Asky极简教程:零基础1小时学编程,已更新前8节
热门文章
- .net core不能使用httpget_.NET Core使用Nlog记录日志
- paddle serving
- 支持向量机(Support Vector Machine SVM)
- 《从NLP反作弊技术看马蜂窝注水事件》笔记
- 转录组拼接软件Trinity使用安装报错锦集
- 【POJ1958】【典型递推问题】汉诺塔问题
- uni的numberbox怎么用_jQuery EasyUI表单插件Numberbox数字框
- 生产者消费者模型(自己上锁与阻塞队列两版本)
- php什么时候面向对象,php什么时候使用面向对象
- android 模仿今日头条ViewPager+TabLayout