使用Docker部署Gitlab
由于公司的代码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相关推荐
- Linux centos7 docker部署gitlab私有服务器
Docker部署gitlab私有服务器,那么,这里必须要有两个软件啦,一个是Docker,一个是gitlab.鉴于很多同学还是不太了解这两个东西,并且观看了不少的其他大神的相关博客,发现对于Docke ...
- Docker部署Gitlab,http端口不用80的解决方法
虚拟机中的端口:80被占用了,所以需要用其他的端口代替 解决办法: web:image: 'gitlab/gitlab-ce:latest'restart: alwayshostname: '146. ...
- docker部署gitlab
这篇文章用来记录下我在使用docker部署gitlab时候遇到的一些坑. 先介绍下我的环境: 阿里云的轻量应用服务器:2核4G(好像最低要求配置,之前用2核2G的部署,直接给内存溢出),centos7 ...
- mac 上搭建gitlabel_在Mac OS X中用Docker部署GitLab
以前采用gitosis在Mac OS上架设Git服务器,用于集中管理课题组中的所有Git仓库.Gitosis 是一套用来管理 authorized_keys文件和实现简单连接限制的脚本,用来添加用户和 ...
- docker 部署 gitlab gitlab-runner 实现 CI
GitLab私服搭建 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务 参考官方Doc: GitLab Docker images | Gi ...
- windows使用docker部署gitlab
前言 我们团队内部有做版本控制的需求,有两种选择,SVN和GIT SVN:集中化的版本控制系统 GIT:分布式版本控制系统 很显然,我一定选择GIT,而且目前GIT应该是占据着版本控制的主流的,SVN ...
- 初探docker部署gitlab
各位小伙伴万福金安,我是你们的小栈君,今天给大家带来的分享是关于gitlab的部署的实战操作,对于gitlab相信不少的小伙伴都或多或少的接触过一些,总的老说GitLab是一个利用 Ruby on R ...
- 使用Docker部署GitLab、Nexus、Registry私服
使用Docker搭建GitLab.Nexus.Registry 最佳建议,一个服务器部署一个相应服务,如果服务器够强大,就可忽视忽视. GitLab的部署 下载镜像 GitLab社区中文版镜像地址 $ ...
- docker 部署Gitlab
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 1.搜索Gitlab docker search gitlab 2.下载Gitlab sudo docker pull gitlab/gitlab-c ...
- 修改无效_解决docker部署gitlab时,clone地址无效和修改默认端口
部署: docker run -d -p 444:443 -p 88:88 -p 222:22 --name gitlab --restart always -v /usr/local/docker/ ...
最新文章
- 迁移学习与跨域推荐,以及解决跨域推荐的方法
- regex在.NET里判断输入信息的合法性
- python如何保证输入键入数字
- JVM学习笔记之-执行引擎(Execution Engine)
- 泛微协同“风暴”席卷高端市场
- 面试官:你们前后端分离的接口规范是什么?
- mapreduce分组统计_Mongodb的分组统计MapReduce
- 【pyqt5学习】——groupBox显示matplotlib图像
- 使用Maven的jaxws-maven-plugin插件,将wsdl生成java
- 14 ABSOLUTE评估肿瘤纯度
- mysql 联合主键的作用
- 【转】Android屏幕适配全攻略(最权威的官方适配指导)
- cdh6.2离线安装(傻瓜式安装教程)
- Mooc里面几门重点大学的C++课程的简单评价_拔剑-浆糊的传说_新浪博客
- 第十二届蓝桥杯 2021年4月 省赛 第一场 C/C++ B组 题解
- C语言数组讲解(1)一维数组的创建和初始化。
- R语言 无法打开文件: No such file or directory
- 利用bazel构建tsan相关程序
- 大逃杀最多100人服务器,绝地求生大逃杀服务器怎么回事 玩家太多服务器承受不了...
- 第7课:Scratchjr声音指令