由于公司的代码server已使用搭建,但由于用户和权限管理太麻烦。
如今想在原有server上再搭建,使用Gitlab官方方法直接安装。 会导致与Gitosis冲突,使得Gitosis不可用, 由于要保持两个服务同一时候存在。所以就想到利用Docker来搭建Gitlab。下面以Ubuntu 14.04为例安装Docker和Gitlab
安装Docker
在bash中输入命令安装最新的docker
sudo apt-get purge docker.iocurl -s https://get.docker.io/ubuntu/ | sudo shsudo apt-get updatesudo apt-get install lxc-docker
下载镜像
下面脚本会下载gitlab,mysql,redis镜像
docker pull sameersbn/gitlab:latestdocker pull sameersbn/mysql:latest docker pull sameersbn/redis:latest
启动redis
docker run \ --name=gitlab_redis \ -tid \ sameersbn/redis:latest
启动mysql
mkdir -p /opt/gitlab/mysqldocker 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/logdocker 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的訪问port,10080作为http的訪问port,运行完后,略微过1-2分钟后,打开下面地址应该就能够訪问gitlab了
假设是在server上搭建。请替换localhost为server地址增加开机启动
增加/etc/rc.local
echo 'docker start gitlab_redis' >> /etc/rc.localecho 'docker start gitlab_mysql' >> /etc/rc.localecho 'docker start gitlab' >> /etc/rc.local
怎样进入docker中的server
- 假设使用的时1.3.0版本号以上的Docker,使用下面命令:
docker exec -it gitlab bash
- 假设是使用更老的版本号,使用下面命令:
docker run --rm --volume=/usr/local/bin:/target jpetazzo/nsentersudo docker-enter gitlab
备份和恢复gitlab
- 备份
docker stop gitlab && docker rm gitlabdocker run --name=gitlab -it --rm [OPTIONS] \ sameersbn/gitlab:latest app:rake gitlab:backup:create
- 恢复
docker stop gitlab && docker rm gitlabdocker run --name=gitlab -it --rm [OPTIONS] \ sameersbn/gitlab:latest app:rake gitlab:backup:restore
升级gitlab
- 又一次pull gitlab镜像
docker pull sameersbn/gitlab:7.11.4
- 停止和删除当前的gitlab进程
docker stop gitlabdocker rm gitlab
- 又一次启动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
本文作者:
本文出处: 转载请在开头注明本文出处。欢迎关注我的微信公众号,分享Swift开发。Android 开发和互联网内容
微信号: