热门标签 | 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 , 感谢这些开源社区 , 愿未来更美好 !


推荐阅读
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社区 版权所有