官方文档 https://docs.gitlab.com/omnibus/docker/README.html
在常规的软件项目开发中,随着开发任务的不断迭代,我们需要一套代码版本管理软件来对项目团队开发的代码进行控制,以便于项目的迭代和版本发布。常见的版本管理工具有CVS
、SVN
、GIT
等,随着近年来GIT
成为主流的代码版本管理工具,它的开源仓库gitlab
社区版也成为了中小型企业的主流版本仓库。
通过docker hub
官方搜索并选择合适的镜像版本,我们这里使用 gitlab/gitlab-ce:latest
。
docker pull gitlab/gitlab-ce:latest
gitlab默认安装目录结构如下:
/opt/gitlab/ ## 主目录
/etc/gitlab/ ## 放置配置文件
/var/opt/gitlab/ ## 各个组件,默认仓库存储路径在该目录的 git-data 文件夹下
/var/log/gitlab/ ## 放置日志文件
根据如上默认目录的存储的内容,我们需要将 /etc/gitlab/
、 /var/opt/gitlab/
、 /var/log/gitlab/
映射的物理磁盘。
规划如下:
/devops/gitlab/data:/var/opt/gitlab/
/devops/gitlab/log:/var/log/gitlab/
/devops/gitlab/conf:/etc/gitlab/
重点:
考虑到我们的整个devops
体系安装在同一台虚拟机上,其中肯定会出现不同应用占用相同端口的情况,故而我们对容易重复占用的端口对外映射时,进行相应调整。
gitlab
镜像对外提供服务的端口包括 22
、80
、443
。
规划如下:
10022:22
10080:80
10443:443
目录创建脚本
sudo mkdir -p /devops/gitlab/data /devops/gitlab/log /devops/gitlab/conf
容器创建脚本
docker run -d --name gitlab --restart always \
--publish 10022:22 \
--publish 10080:80 \
--publish 10443:443 \
-v /devops/gitlab/data:/var/opt/gitlab/ \
-v /devops/gitlab/log:/var/log/gitlab/ \
-v /devops/gitlab/conf:/etc/gitlab/ \
gitlab/gitlab-ce:latest
在浏览器中输入 http://192.168.1.150:10080
打开gitlab登录页。 首次打开时,须设置root
账号的密码。
设置密码成功后,即可通过该密码登录gitlab
。
注意:由于gitlab启动稍微有些慢,开始可能会出现如下界面,等待一会再访问即可。
服务端配置: 在/usr/local/nginx/conf/conf.d
目录中增加 git.tysite.org.conf
配置文件,实现URL http://git.tysite.org
代理到 nginx
所在服务器的10080
端口
cd /usr/local/nginx/conf/conf.d
vi git.tysite.org.conf
server {
listen 80;
server_name git.tysite.org;
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:10080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
说明:
listen
:监听的端口号server_name
:监听的域名,当前完全匹配模式,可以通过*.tysite.org模式实现模糊匹配location
: 代理的路径,/
代表端口后的一级目录均调用此代理proxy_pass
:代理到的目标地址,当前配置代理到本机的 10080 端口客户端配置: 用户本地修改 hosts
文件,添加域名映射
192.168.43.150 git.tysite.org
gitlab
的docker-compose
语法块模板如下,请将其加入到devops
的docker-compose.yml
文件中即可。
gitlab:
container_name: gitlab
image: gitlab/gitlab-ce:latest
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://git.tysite.org'
gitlab_rails['gitlab_shell_ssh_port'] = 10022
ports:
- "10022:22"
- "10080:80"
- "10443:443"
volumes:
- "./gitlab/data:/var/opt/gitlab/"
- "./gitlab/log:/var/log/gitlab/"
- "./gitlab/conf:/etc/gitlab/"
注意:启动docker-compose
须先删除docker run
的演示容器。
environment
:向镜像传递配置参数external_url
:配置 gitlab 使用 http / https 协议的拉取地址gitlab_shell_ssh_port
:配置gitlab 使用 ssh协议 拉取地址的端口官方地址:https://git-scm.com/downloads
本地开发环境以windows
系统为例,其他操作系统可自行在官网下载对应系统的软件。
作者使用的 git 版本为 Git-2.8.1-64-bit.exe
,于windows
系统下,界面操作即可。
devops
完整的目录规划、docker-compose.yml 及 nginx配置,请到作者码云下载:https://gitee.com/tysite/devops