1.既然要使用Docker安装,那么首先需要安装Docker
# Ubuntu apt-get update apt-get install docker # CentOS 6.5+ yum update yun install docker2.启动 Docker 服务
service docker start3.查看是否安装成功
docker version这种方式没什么难度 , 适合 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.1下载镜像
# 下载gitlab所用到的gitlab镜像 docker pull sameersbn/gitlab:latest # 下载gitlab所用到的postgresql镜像 (其实使用mysql也行) docker pull sameersbn/postgresql:latest # 下载gitlab所用到的redis镜像 docker pull sameersbn/redis:latest2.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访问GitLab -> 服务器地址 : http://服务器 ip 地址:10080 本地访问地址:http://localhost:10080
使用默认的用户名和密码登录: 默认的用户名:root 默认的密码:5iveL!fe
在安装的过程中遇到了一些小的问题 , 我是参照旧版本的安装方式进行修改的 , 最后进行了一些细微的调整 , 总算解决了问题
之前运行 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 , 于是又加了两个 , 最后成功启动了
还有很多运行参数可以自由配置 , SSH 等多种登陆方式配置 , 感兴趣的朋友可以多试试 , 最后 , 感谢 Docker , 感谢这些开源社区 , 愿未来更美好 !
