今天闲着无聊,于是乎想用最近很流行的docker容器搭建一个自己的gitlab的服务器,关于docker和gitlab就不多介绍了,网上查了很多资料,貌似没有一个统一的方法,很乱很杂,而且很容易误导人,其实搭建一个私有gitlab服务器其实没有那么难,说一下今天我用的方式。

  网上的方法很多,无外乎两种:

  1.分别拉取redis,gitlab,postgresql(mysql也行)三个镜像,然后不拉不拉不拉...感觉后面好麻烦(个人还是比较懒的)。

  2.通过docker-compose快速构建,我反正是没成功..

  后来经过查阅资料发现,gitlab/gitlab-ce这个镜像包含了gitlab运行所需要的所有组件,其实用这一个镜像就够了,下面开始正文。

  主要步骤:

  1.拉取gitlab/gitlab-ce镜像,建议使用网易的镜像仓库地址,快到飞起,地址:hub.c.163.com/gutenye/gitlab-ce:latest

docker pull hub.c.163.com/gutenye/gitlab-ce:latest

  2.创建并并行一个容器,输入以下命令:

docker run -i \
--hostname localhost \
--publish 443:443 --publish 80:80 --publish 2222: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 \
--volume /srv/gitlab/logs/reconfigure:/var/log/gitlab/reconfigure \
hub.c.163.com/gutenye/gitlab-ce:latest

  \ 代表换行符,以上参数我就不讲解了,就说一个,也是我在本次过程中遇到的很大的一个坑:注意那个 -i 参数,我刚开始写的时候是: --detach ,--detach(-d)的意思是以后台的方式运行,当你用这个参数的时候控制台直接返回给你一个容器ID,没有其他任何信息的输出,当时我就懵逼了,因为查阅资料说要等几分钟的配置工作,我以为会打印日志信息出来,然而并没有,当时真的很懵逼,不过还好在StackOverflow上查到了原因,原来,-d的意思是以后台程序运行,也就是说塔虽然直接返回给了你一个容器ID,但它其实是有在运行的,只不过没有打印信息出来,当你该用 -i (可以理解为在控制台打印日志)参数运行时,打印结果就出来了。下面上两张对比图。

  以 --detach(-d)方式运行

  是不是很坑爹?什么信息也没有,只有一个67开头的容器ID,其实此时后台是有程序在跑的,也就是说你的gitlab其实是在后台跑起来了。

  以 -i 方式运行 

  第一张图是在公司用公司电脑win7跑的,第二张是在自己电脑上win10系统跑的,然后等大概两分钟的样子,等它配置完就可以登陆192.168.99.100了。然后进入gitlab主页了

  另外,我用的是windows系统,请区分windows系统中docker宿主机和linux系统中docker宿主机的不同,因为docker的运行依赖linux环境,所以在windows系统中运行docker时,就必须先虚拟出来一个linux虚拟机,这也是docker在windows下安装时(我用的DockerQuickStartTerminal)也会跟着安装一个virtualbox的原因,此时docker宿主机指的是virtualbox中新建的那个linux虚拟机,宿主机IP指的也是那个linux虚拟机的IP,如果是在linux环境下使用docker,那么宿主机就是本机。

基于docer搭建私有gitlab服务器的更多相关文章

  1. 搭建私有 Nuget 服务器教程(1)

    对于 .NET 开发者来说,nuget 是必不可少的程序包管理工具.相应地,大部分开发团队都需要在内部搭建 Nuget 服务器,以管理私有 nupkg 包.本教程所使用的 Nuget 服务器,不是微软 ...

  2. linux下安装EJBCA 搭建私有CA服务器

    linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1.  linux mint18.3 62位: ...

  3. 利用阿里云搭建私有Git服务器

    服务器系统:Centos 6 (查看centos版本命令:lsb_release -a) 客户端系统:Windows 7 一.服务器端安装Git ==通常centos上使用yum源安装的git版本过低 ...

  4. 使用BaGet 搭建私有nuget 服务器

    使用BaGet 搭建私有nuget 服务器 netNugetBaGet 引言 为了增强代码的安全性和企业团队开发的高效性,搭建私有的package 包管理服务器是很有必要的,搭建私有的类库管理服务有以 ...

  5. NET Core:搭建私有Nuget服务器以及打包发布Nuget包

    docker 安装 https://www.cnblogs.com/liuxiaoji/p/11014329.html 1.使用docker搭建私有Nuget服务器 docker run -d -p ...

  6. [开发笔记usbTOcan]用树莓派搭建私有Git服务器

    0 | 思路 在开始编程前,先创建一个版本管理库,以前一直用SVN,但目前用Git的还是比较,正好利用这个机会学习GIt. 想过使用Github提供的免费服务器,但项目目前还没有做开源的准备,于是就有 ...

  7. 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器

    简介 使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便:另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关 ...

  8. 版本控制系统之基于httpd搭建私有git仓库

    在上一篇博客中,我们主要聊到了git的基本工作原理和一些常用的git命令的使用:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13787701.html:今天我 ...

  9. 用腾讯云Gogs搭建私有git服务器

    前言 经常有需要写不能公开代码的项目,所以只好自己搭建一个私人的git服务器 Gogs的好处在于比Gitlib轻量化了好多,而且是国人写的,官方主页也是中文的 Gogs首页 腾讯云服务器配置: Ubu ...

随机推荐

  1. POJ - 3268 单源最短路

    题意:给定一些有向边,以及一个目的地,从某个点到达目的地,再从目的地回到那个点.共有n个点,问这n个点花费最大是多少? 思路:从目的地回去直接把目的地作为源点即可.那么从某个点到达目的地应该如何得到最 ...

  2. Codeforces 257D

    题意略. 思路:这个题目最重要的是那个不等式 a[i] <= a[i+1] <= 2 * a[i]  ,你会发现0 <= a[i+1]  -  a[i] <= a[i],令x ...

  3. 第6章 MSI和MSI-X中断机制

    在PCI总线中,所有需要提交中断请求的设备,必须能够通过INTx引脚提交中断请求,而MSI机制是一个可选机制.而在PCIe总线中,PCIe设备必须支持MSI或者MSI-X中断请求机制,而可以不支持IN ...

  4. Java中File类总结

    /** * @Title:JavaFile.java * @Package:com.yhd.chart.model * @Description:File类测试 * @author:Youhaidon ...

  5. dojo中的xhrPost请求(JSON)

    dojo中的xhrPost请求 dojo.xhrPost({ url:"../area.action", content:{ areaCode:areaCode }, handle ...

  6. [php错误]PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法

    使用unserialize函数将数据储存到数据库的时候遇到了这个报错, 后来发现是将gb2312转换成utf-8格式之后, 每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问 ...

  7. xWorks下的硬盘启动方法

    在VxWorks下进行开发调试,在目标机上加载VxWorks映像很重要,在目标机上加载VxWorks映像,最重要的是三个步骤: 第一步,修改config.h文件,在config.h文件里包括硬盘驱动. ...

  8. JAVA 单步调试快捷键

    JAVA 单步调试快捷键以debug方式运行java程序后 (F8)直接执行程序.遇到断点时暂停:(F5)单步执行程序,遇到方法时进入:(F6)单步执行程序,遇到方法时跳过:(F7)单步执行程序,从当 ...

  9. HTML5可以省略结束标记的元素

    HTML5可以省略结束标记的元素 1.dd 2.dt 3.li 4.p 5.optgroup 6.option 7.rt 8.rp 9.thread 10.tfoot 11.tr 12.td 13.t ...

  10. 关于ios手机游览器针对overflow:hidden设置无效的解决办法

    Ordinarily, overflow: hidden; on the body tag is sufficient to prevent scrolling a web page, if for ...