ITGit技术文

使用Docker部署Gitlab

2015-06-14  本文已影响1297人  阳春面

由于公司的代码服务器已使用Gitosis搭建,但由于用户和权限管理太麻烦,
现在想在原有服务器上再搭建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的访问端口,10080作为http的访问端口,

执行完后,稍微过1-2分钟后,打开以下地址应该就可以访问gitlab了
http://localhost:10080
如果是在服务器上搭建,请替换localhost为服务器地址

加入开机启动

加入/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中的服务器

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

docker pull sameersbn/gitlab:7.11.4
docker stop gitlab
docker rm 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开发者

上一篇下一篇

猜你喜欢

热点阅读