- 論壇徽章:
- 18
|
Gitlab的docker化,找了些資料,后來發(fā)現(xiàn)其實人們早就已經(jīng)做好了,并且在github上就有。最近學(xué)到了一個思想,”不重復(fù)造輪子“, 我這里簡單照著文檔做下總結(jié)。 GitLab是利用 Ruby on Rails 一個開源的版本管理系統(tǒng),使用Git作為代碼管理工具,并在此基礎(chǔ)上搭建起來的web服務(wù).實現(xiàn)一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋?梢怨芾韴F隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。團隊成員可以利用內(nèi)置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現(xiàn)代碼復(fù)用,便于日后有需要的時候進行查找。
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機器和數(shù)據(jù)中心中運行。最重要的是,他們不依賴于任何語言、框架包括系統(tǒng)。
安裝docker:
1
# wget -qO- https://get.docker.com/ | sh
安裝docker-gitlab:
安裝對應(yīng)版本的gitlab鏡像:
1
# docker pull sameersbn/gitlab:8.5.5
如果想安裝最新版,使用:
1
# docker pull sameersbn/gitlab:latest
啟動gitlab:
最快的啟動方式是使用docker-compose:
1
# wget https://raw.githubusercontent.co ... /docker-compose.yml
yml文件里存放了相應(yīng)服務(wù)的配置,可根據(jù)情況更改;可以使用如下命令生成一個64位是隨機字符串,用于GITLAB_SECRETS_DB_KEY_BASE
1
2
# pwgen -Bsv1 64
qs7KxxMx3wrWpFMH3CxFpbnCNHPfxsxcgRTJcNMgjMJhwLfvmh4HrmwKc4mMcRc7
1
- GITLAB_SECRETS_DB_KEY_BASE=qs7KxxMx3wrWpFMH3CxFpbnCNHPfxsxcgRTJcNMgjMJhwLfvmh4HrmwKc4mMcRc7
另外docker-gitlab默認使用/home/git/data這個目錄用來存放提交上來的代碼,我修改成了自己的路徑:
1
2
volumes:
- /srv/docker/gitlab/gitlab:/data/code
啟動gitlab,這個過程需要等待一段時間:
1
# docker-compose up
執(zhí)行完成之后查看啟動結(jié)果:
1
2
3
4
5
root@gitlab:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aefaf4098b00 sameersbn/gitlab:8.5.5 "/sbin/entrypoint.sh " 13 hours ago Up 13 hours 443/tcp, 0.0.0.0:10022->22/tcp, 0.0.0.0:10080->80/tcp root_gitlab_1
a8ed7a4dd879 sameersbn/postgresql:9.4-14 "/sbin/entrypoint.sh" 13 hours ago Up 13 hours 5432/tcp root_postgresql_1
a9e519dcb183 sameersbn/redis:latest "/sbin/entrypoint.sh" 13 hours ago Up 13 hours 6379/tcp root_redis_1
如果不用docker-compose的方式,也可以手動 launch:
1、啟動postgresql:
1
2
3
4
5
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:9.4-14
2、啟動redis:
1
2
3
docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
3、啟動gitlab:
1
2
3
4
5
6
7
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:8.5.5
上面的命令將使用10080作為Gitlab的Web訪問端口,10022將作為ssh push和pull代碼的端口。 在本地可以使用瀏覽器打開http://localhost:10080來訪問Gitlab,初始登錄網(wǎng)站使用root賬戶,用戶名為root,密碼為:5iveL!fe,登錄后需要立即修改密碼。
登陸:
http://localhost:10080
登陸進去之后修改密碼就可以進行項目管理了 |
|