由于公司的代碼服務(wù)器已使用Gitosis搭建靶累,但由于用戶和權(quán)限管理太麻煩岭妖,
現(xiàn)在想在原有服務(wù)器上再搭建Gitlab晾匠,使用Gitlab官方方法直接安裝姑食,
會導(dǎo)致與Gitosis沖突褥紫,使得Gitosis不可用送朱,
因為要保持兩個服務(wù)同時存在熙尉,所以就想到利用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的訪問端口,
執(zhí)行完后案淋,稍微過1-2分鐘后座韵,打開以下地址應(yīng)該就可以訪問gitlab了
http://localhost:10080
如果是在服務(wù)器上搭建,請?zhí)鎿Qlocalhost為服務(wù)器地址
加入開機(jī)啟動
加入/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
如何進(jìn)入docker中的服務(wù)器
- 如果使用的時1.3.0版本以上的Docker,使用以下命令:
docker exec -it gitlab bash
- 如果是使用更老的版本踢京,使用以下命令:
docker run --rm --volume=/usr/local/bin:/target jpetazzo/nsenter
sudo docker-enter gitlab
備份和恢復(fù)gitlab
- 備份
docker stop gitlab && docker rm gitlab
docker run --name=gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:latest app:rake gitlab:backup:create
- 恢復(fù)
docker stop gitlab && docker rm gitlab
docker run --name=gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:latest app:rake gitlab:backup:restore
升級gitlab
- 重新pull gitlab鏡像
docker pull sameersbn/gitlab:7.11.4
- 停止和刪除當(dāng)前的gitlab進(jìn)程
docker stop gitlab
docker 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
本文作者: 陽春面
本文出處:http://www.aswifter.com/2015/06/14/gitlab-with-docker/
轉(zhuǎn)載請在開頭注明本文出處誉碴。
歡迎關(guān)注我的微信公眾號,分享Swift開發(fā)瓣距,Android 開發(fā)和互聯(lián)網(wǎng)內(nèi)容
微信號:APP開發(fā)者