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/configgitlab.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相关推荐

  1. 基于Docker搭建Gitlab代码存储

    关于Docker搭建Gitlab,在19年时就已经在博客发过文章了,今天重新回顾一下. 1.拉取镜像 docker pull gitlab/gitlab-ce 默认拉取最新版本: 2.创建Gitlab ...

  2. 基于Docker搭建GitLab代码管理

    关于Git.SVN的优缺点就不再重复了,本篇主要以实际搭建为主. 1.下载镜像文件 在命令行窗口执行如下指令,预计下载完成4分钟. docker pull beginor/gitlab-ce:11.0 ...

  3. 基于Docker搭建GitLab环境

    GitLab占用内存较大,虚拟机内存建议设置在2G以上. 一.环境搭建 一.下载镜像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 注意:一定要配置阿里云的加 ...

  4. 基于Docker搭建私有镜像仓库

    通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是 ...

  5. docker 启动容器的时候没-p 后面怎么加-p_基于Docker搭建基础自动化部署

           阅读本文约需要7分钟  大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下SpringBoot如何实现全链路调用 ...

  6. Docker搭建 Gitlab CI Runner

    文章目录 Docker搭建 Gitlab CI Runner 拉取 gitlab-runner 镜像 启动 gitlab-runner容器 注册runner 定义项目构建流程 获取日志 停止并删除现有 ...

  7. gitlab使用_如何在正确使用 Docker 搭建 GitLab

    很多程序员在内网搭建 gitlab 都搭建的坑坑洼洼,不支持 https,或者装个 gitlab 就把服务器弄得乱七八糟的,根本不知道该怎么维护和迁移.还有程序员再用最原始的,远程机器上: git - ...

  8. docker搭建gitlab

    docker搭建gitlab 在服务器上直接安装gitlab,会装入Git,Redis ,postgresql,nginx等.如果主机已有redis.nginx等,配置会比较麻烦.而且以后gitlab ...

  9. 基于 Docker 和 GitLab 的前端自动化部署实践笔记

    基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...

  10. 使用docker搭建gitlab服务器

    使用docker搭建gitlab服务器 一.查看当前dokcer环境 二.安装docker-compose 三.编辑yaml文件 1.创建目录及yaml文件 2.编辑ymal文件 四.生成自签名证书文 ...

最新文章

  1. VC++向txt文件中写入字符串
  2. C#中提供的精准测试程序运行时间的类Stopwatch
  3. 用php生成html文件,怎样用PHP生成html文件
  4. java 获取打印机缺纸_第三章软件
  5. Oracle关于TX锁的一个有趣的问题
  6. 线性代数之行列式基础点
  7. 高级转录组分析和R语言数据可视化课程全部转为视频课
  8. java-抽象类和接口对区别
  9. Multi-Armed Bandit--基于时变多臂老虎机的在线上下文感知推荐
  10. SQL Server 2014安装图解
  11. java多台_java多态
  12. SQL Server 2008安装
  13. matlab平差实习报告,《测量平差》课程设计实习报告 五星文库
  14. SaaS是Software-as-a-Service(软件即服务)
  15. 电信悦meYMB0300-CW-卡刷-刷机固件
  16. 正则表达式中问号(?)的用法详解
  17. Django中models模型(操作数据库)
  18. Xmake v2.7.1 发布,更好的 C++ Modules 支持
  19. 中软国际实习 dzy15
  20. Asky极简教程:零基础1小时学编程,已更新前8节

热门文章

  1. .net core不能使用httpget_.NET Core使用Nlog记录日志
  2. paddle serving
  3. 支持向量机(Support Vector Machine SVM)
  4. 《从NLP反作弊技术看马蜂窝注水事件》笔记
  5. 转录组拼接软件Trinity使用安装报错锦集
  6. 【POJ1958】【典型递推问题】汉诺塔问题
  7. uni的numberbox怎么用_jQuery EasyUI表单插件Numberbox数字框
  8. 生产者消费者模型(自己上锁与阻塞队列两版本)
  9. php什么时候面向对象,php什么时候使用面向对象
  10. android 模仿今日头条ViewPager+TabLayout