由于公司的代码server已使用Gitosis搭建,但由于用户和权限管理太麻烦。
如今想在原有server上再搭建Gitlab,使用Gitlab官方方法直接安装。
会导致与Gitosis冲突,使得Gitosis不可用,
由于要保持两个服务同一时候存在。所以就想到利用Docker来搭建Gitlab。

下面以Ubuntu 14.04为例安装Docker和Gitlab

安装Docker

在bash中输入命令安装最新的docker

sudo apt-get purge docker.io
curl -s https://get.docker.io/ubuntu/ | sudo sh
sudo apt-get update
sudo apt-get install lxc-docker

下载镜像

下面脚本会下载gitlab,mysql,redis镜像

docker pull sameersbn/gitlab:latest
docker pull sameersbn/mysql:latest
docker pull sameersbn/redis:latest

启动redis

docker run \--name=gitlab_redis \-tid \sameersbn/redis:latest

启动mysql

mkdir -p /opt/gitlab/mysql
docker run \--name=gitlab_mysql \-tid \-e 'DB_NAME=gitlabhq_production' \-e 'DB_USER=gitlab' \-e 'DB_PASS=password' \-v /opt/gitlab/mysql:/var/lib/mysql \sameersbn/mysql:latest

启动gitlab

mkdir -p /opt/gitlab/data /opt/gitlab/log
docker run \--name='gitlab' \-itd \--link gitlab_mysql:mysql \--link gitlab_redis:redisio \-e 'GITLAB_PORT=80' \-e 'GITLAB_SSH_PORT=22' \-p 10022:22 -p 10080:80 \-v /var/run/docker.sock:/run/docker.sock \-v $(which docker):/bin/docker \-v /opt/gitlab/data:/home/git/data \-v /opt/gitlab/log:/var/log/gitlab \sameersbn/gitlab:latest

这一步骤会耗时几分钟,由于这一步会做一些初始化操作,我们能够通过docker logs gitlab来查看安装过程。
我们指定了10022作为ssh的訪问port,10080作为http的訪问port,

运行完后,略微过1-2分钟后,打开下面地址应该就能够訪问gitlab了
http://localhost:10080
假设是在server上搭建。请替换localhost为server地址

增加开机启动

增加/etc/rc.local

echo 'docker start gitlab_redis' >> /etc/rc.local
echo 'docker start gitlab_mysql' >> /etc/rc.local
echo 'docker start gitlab' >> /etc/rc.local

怎样进入docker中的server

  • 假设使用的时1.3.0版本号以上的Docker,使用下面命令:
docker exec -it gitlab bash
  • 假设是使用更老的版本号,使用下面命令:
docker run --rm --volume=/usr/local/bin:/target jpetazzo/nsenter
sudo docker-enter gitlab

备份和恢复gitlab

  • 备份
docker stop gitlab && docker rm gitlab
docker run --name=gitlab -it --rm [OPTIONS] \sameersbn/gitlab:latest app:rake gitlab:backup:create
  • 恢复
docker stop gitlab && docker rm gitlab
docker run --name=gitlab -it --rm [OPTIONS] \sameersbn/gitlab:latest app:rake gitlab:backup:restore

升级gitlab

  • 又一次pull gitlab镜像
docker pull sameersbn/gitlab:7.11.4
  • 停止和删除当前的gitlab进程
docker stop gitlab
docker rm gitlab
  • 又一次启动gitlab
docker run \--name='gitlab' \-itd \--link gitlab_mysql:mysql \--link gitlab_redis:redisio \-e 'GITLAB_PORT=80' \-e 'GITLAB_SSH_PORT=22' \-p 10022:22 -p 10080:80 \-v /var/run/docker.sock:/run/docker.sock \-v $(which docker):/bin/docker \-v /opt/gitlab/data:/home/git/data \-v /opt/gitlab/log:/var/log/gitlab \sameersbn/gitlab:latest

本文作者: 阳春面
本文出处:http://www.aswifter.com/2015/06/14/gitlab-with-docker/
转载请在开头注明本文出处。

欢迎关注我的微信公众号,分享Swift开发。Android 开发和互联网内容
微信号:APP开发人员

转载于:https://www.cnblogs.com/gavanwanggw/p/7147496.html

使用Docker部署Gitlab相关推荐

  1. Linux centos7 docker部署gitlab私有服务器

    Docker部署gitlab私有服务器,那么,这里必须要有两个软件啦,一个是Docker,一个是gitlab.鉴于很多同学还是不太了解这两个东西,并且观看了不少的其他大神的相关博客,发现对于Docke ...

  2. Docker部署Gitlab,http端口不用80的解决方法

    虚拟机中的端口:80被占用了,所以需要用其他的端口代替 解决办法: web:image: 'gitlab/gitlab-ce:latest'restart: alwayshostname: '146. ...

  3. docker部署gitlab

    这篇文章用来记录下我在使用docker部署gitlab时候遇到的一些坑. 先介绍下我的环境: 阿里云的轻量应用服务器:2核4G(好像最低要求配置,之前用2核2G的部署,直接给内存溢出),centos7 ...

  4. mac 上搭建gitlabel_在Mac OS X中用Docker部署GitLab

    以前采用gitosis在Mac OS上架设Git服务器,用于集中管理课题组中的所有Git仓库.Gitosis 是一套用来管理 authorized_keys文件和实现简单连接限制的脚本,用来添加用户和 ...

  5. docker 部署 gitlab gitlab-runner 实现 CI

    GitLab私服搭建 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务 参考官方Doc: GitLab Docker images | Gi ...

  6. windows使用docker部署gitlab

    前言 我们团队内部有做版本控制的需求,有两种选择,SVN和GIT SVN:集中化的版本控制系统 GIT:分布式版本控制系统 很显然,我一定选择GIT,而且目前GIT应该是占据着版本控制的主流的,SVN ...

  7. 初探docker部署gitlab

    各位小伙伴万福金安,我是你们的小栈君,今天给大家带来的分享是关于gitlab的部署的实战操作,对于gitlab相信不少的小伙伴都或多或少的接触过一些,总的老说GitLab是一个利用 Ruby on R ...

  8. 使用Docker部署GitLab、Nexus、Registry私服

    使用Docker搭建GitLab.Nexus.Registry 最佳建议,一个服务器部署一个相应服务,如果服务器够强大,就可忽视忽视. GitLab的部署 下载镜像 GitLab社区中文版镜像地址 $ ...

  9. docker 部署Gitlab

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 1.搜索Gitlab docker search gitlab 2.下载Gitlab sudo docker pull gitlab/gitlab-c ...

  10. 修改无效_解决docker部署gitlab时,clone地址无效和修改默认端口

    部署: docker run -d -p 444:443 -p 88:88 -p 222:22 --name gitlab --restart always -v /usr/local/docker/ ...

最新文章

  1. 迁移学习与跨域推荐,以及解决跨域推荐的方法
  2. regex在.NET里判断输入信息的合法性
  3. python如何保证输入键入数字
  4. JVM学习笔记之-执行引擎(Execution Engine)
  5. 泛微协同“风暴”席卷高端市场
  6. 面试官:你们前后端分离的接口规范是什么?
  7. mapreduce分组统计_Mongodb的分组统计MapReduce
  8. 【pyqt5学习】——groupBox显示matplotlib图像
  9. 使用Maven的jaxws-maven-plugin插件,将wsdl生成java
  10. 14 ABSOLUTE评估肿瘤纯度
  11. mysql 联合主键的作用
  12. 【转】Android屏幕适配全攻略(最权威的官方适配指导)
  13. cdh6.2离线安装(傻瓜式安装教程)
  14. Mooc里面几门重点大学的C++课程的简单评价_拔剑-浆糊的传说_新浪博客
  15. 第十二届蓝桥杯 2021年4月 省赛 第一场 C/C++ B组 题解
  16. C语言数组讲解(1)一维数组的创建和初始化。
  17. R语言 无法打开文件: No such file or directory
  18. 利用bazel构建tsan相关程序
  19. 大逃杀最多100人服务器,绝地求生大逃杀服务器怎么回事 玩家太多服务器承受不了...
  20. 第7课:Scratchjr声音指令

热门文章

  1. zoj 3581 A Simple Test 模拟题
  2. hihoCoder week10 后序遍历
  3. Centos7 搭建 hadoop3.1.1 集群教程
  4. java面向对象--对象初始化
  5. GNU make manual 翻译(五十二)
  6. CakePHP查询数据
  7. 第3章 神经网络的最优化
  8. PCA原理及代码实现
  9. python3----练习题(图片转字符画)
  10. Centos7安装完毕后无法联网的解决方法(转)