我们这边继续之前的问题; 打算模拟生产中的自动化部署.
这套技术;其实利用的是gitlab CI 的持续集成 ; 关于持续集成这边我就不多讲了; 大家可以看我推荐的微博: GitLab CI持续集成配置方案
这边我来讲一下; 如何用docker 在linux 上搭建一个gitlab 仓库.
- 第一步,安装 postgresql container
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-12
2.第二部 , 安装 redis container
docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
3.安装gitlab container
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 \ gitlab/gitlab-ce:latest
关于安装中使用的这些指令 ; 我这边就不详细讲了; 大家可以去看两本书
< 第一本docker书 > < springcloud和docker实战 >
到这里; 可以利用docker ps 查看一下是否都在运行;
说明我们的gitlab 已经启动了; 我们来访问一下:虚拟机Ip + 设置端口(10080)
你们得到的页面和我不一样; 因为一开始进去要进行 账号密码设置.
关于跟多的gitlab 运行和维护.这边推荐微博:GitLab搭建与维护
下面有机会我们再讲解一下git ci 的安装和配置
注意目录权限:
在官方示例中,我们把gitlab的数据放在了/srv/docker/gitlab/下,一开始我用root身份对整个目录进行cp -R备份,发现gitlab有时会出现无法显示(读取)gitlab库,以及有时个别操作(如恢复备份)会出现权限不足的情况,使用cp -a或者cp -rp或者rsync -a来保持复制后的文件具有原来的模样。