热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Docker】使用Docker安装gitlab

使用Docker搭建gitlab一.安装Docker1.既然要使用Docker安装,那么首先需要安装Docker#Ubuntuapt-getupdateapt-getin

使用Docker搭建 gitlab

一.安装Docker

这里写图片描述
1.既然要使用Docker安装,那么首先需要安装Docker

# Ubuntu 
apt-get update
apt-get install docker


# CentOS 6.5+
yum update
yun install docker

2.启动 Docker 服务

 service docker start 

3.查看是否安装成功

   docker version

二.安装 GitLab

2.1 方式一 : 使用 docker-compose 安装

这种方式没什么难度 , 适合 Linux 新手使用 , 但 200M+ 的大小需要花点时间;

wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
docker-compose up

注: 由于 docker 镜像站在国外,下起来可能会比较慢 , 建议使用国内的镜像加速或现成的镜像源,如阿里、DaoCloud、Docker中文社区提供的服务.
DaoCloud传送门: https://www.daocloud.io/mirror#accelerator-doc

个人感觉pull速度确实快了很多 , 感谢这些热心而充满开源精神的同仁。

2.2 方式二 : 逐步安装

2.2.1下载镜像

# 下载gitlab所用到的gitlab镜像
docker pull sameersbn/gitlab:latest

# 下载gitlab所用到的postgresql镜像 (其实使用mysql也行)
docker pull sameersbn/postgresql:latest

# 下载gitlab所用到的redis镜像
docker pull sameersbn/redis:latest

2.2.2 按顺序运行

# 1、运行一个PostgreSQL容器
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:latest


# 2、运行一个Redis容器
docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest


# 3、运行 gitlab
docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=s5GsFwhcShsQkp5sjS3CxqBjKRKVrJdGcTKT87W394W28QLPXn64N8NmBNgJ4NBr' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=TlhjRipykC6jrQFNSyiComve907BaU5Bstz4EgYMuNqLztUuZ4MXD1ONfbmbmOBs' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=9nfi978nL3pC9QwlFLQ2no5YpuOrRMxtqKaYVCgjHKee37Vx7Zco05AETPsg18i4' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:latest

2.3 安装成功后访问

访问GitLab ->
服务器地址 : http://服务器 ip 地址:10080
本地访问地址:http://localhost:10080

使用默认的用户名和密码登录:
默认的用户名:root
默认的密码:5iveL!fe

2.4 坑与解决思路

在安装的过程中遇到了一些小的问题 , 我是参照旧版本的安装方式进行修改的 , 最后进行了一些细微的调整 , 总算解决了问题

之前运行 git-lab 时的配置文件

docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:latest

之后启动失败了:

[root@iZ2ze0zkx5pckai7smgnv0Z ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
40439aafc98e sameersbn/gitlab:latest "/sbin/entrypoint.sh " 5 seconds ago Exited (1) 4 seconds ago gitlab
c67128a042a6 sameersbn/postgresql:9.5-1 "/sbin/entrypoint.sh" 2 minutes ago Up 2 minutes 5432/tcp gitlab-postgresql
c1c6883b8524 sameersbn/redis:latest "/sbin/entrypoint.sh" About an hour ago Up About an hour 6379/tcp gitlab-redis

通过那个 Exited 可以得知启动并没有成功 , 于是在思考是因为什么

  # 通过 docker 命令查看启动日志信息 (-f后是容器ID)
docker logs -f 40439aafc98e

# 下面是错误日志
Initializing logdir...
Initializing datadir...
Installing configuration templates...
Configuring gitlab...
Configuring gitlab::database
Configuring gitlab::redis
Configuring gitlab::secrets...
ERROR:
Please configure the GITLAB_SECRETS_SECRET_KEY_BASE parameter.
Cannot continue. Aborting...

查看官方文档:

Note: Since GitLab 8.0.0 you need to provide the GITLAB_SECRETS_DB_KEY_BASE parameter while starting the image.
Tip: You can generate a random string using pwgen -Bsv1 64 and assign it as the value of GITLAB_SECRETS_DB_KEY_BASE.

意思是从 gitlab 8.0版本开始需要一个 GITLAB_SECRETS_DB_KEY_BASE 加密参数 ,

然后通过 pwgen -Bsv1 64 可以生成一个 ,

我生成了 , 之后发现还是报错 …. (? _ ?)

最后看了一下完整的参数配置

docker run --name gitlab -d\
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_HOST=YOURHOST' \
--env 'GITLAB_RELATIVE_URL_ROOT=/' \
--env 'GITLAB_PORT=80' --env 'GITLAB_SSH_PORT=10022' \
--env 'SMTP_ENABLED=true' --env 'SMTP_HOST=YOURMAILHOST' --env 'SMTP_DOMAIN=YOURDOMAIN' --env 'SMTP_PORT=465' \
--env 'SMTP_USER=YOURUSER' --env 'SMTP_PASS=YOURPASSWORD' --env 'SMTP_STARTTLS=true' --env 'SMTP_TLS=true' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=5OAvCZZM2ZzCzPJInFcn3NiVVNi6YbBIfJQIQDO6Or2utKLpWyTHaeBnVWV6GwpK' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=TlhjRipykC6jrQFNSyiComve907BaU5Bstz4EgYMuNqLztUuZ4MXD1ONfbmbmOBs' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=9nfi978nL3pC9QwlFLQ2no5YpuOrRMxtqKaYVCgjHKee37Vx7Zco05AETPsg18i4' \
--volume /YOUR/GITLAB/FOLDER:/home/git/data \
sameersbn/gitlab:latest

发现除了 GITLAB_SECRETS_SECRET_KEY_BASE 之外还有 : GITLAB_SECRETS_DB_KEY_BASE 和 GITLAB_SECRETS_OTP_KEY_BASE ,
于是又加了两个 , 最后成功启动了

2.5 界面展示

这里写图片描述
这里写图片描述

还有很多运行参数可以自由配置 , SSH 等多种登陆方式配置 ,
感兴趣的朋友可以多试试 ,
最后 , 感谢 Docker , 感谢这些开源社区 , 愿未来更美好 !


推荐阅读
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 2018深入java目标计划及学习内容
    本文介绍了作者在2018年的深入java目标计划,包括学习计划和工作中要用到的内容。作者计划学习的内容包括kafka、zookeeper、hbase、hdoop、spark、elasticsearch、solr、spring cloud、mysql、mybatis等。其中,作者对jvm的学习有一定了解,并计划通读《jvm》一书。此外,作者还提到了《HotSpot实战》和《高性能MySQL》等书籍。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • PHP函数实现分页含文本分页和数字分页【PHP】
    后端开发|php教程PHP,分页后端开发-php教程最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。影视网源码带充值系统,vscode配置根 ... [详细]
author-avatar
手机用户2502895461
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有