6、gitlab docker 快速搭建 git 仓库

gitlab docker 快速搭建 git 仓库

官方文档 https://docs.gitlab.com/omnibus/docker/README.html

说明

在常规的软件项目开发中,随着开发任务的不断迭代,我们需要一套代码版本管理软件来对项目团队开发的代码进行控制,以便于项目的迭代和版本发布。常见的版本管理工具有CVSSVNGIT等,随着近年来GIT成为主流的代码版本管理工具,它的开源仓库gitlab社区版也成为了中小型企业的主流版本仓库。

一. 镜像获取

通过docker hub官方搜索并选择合适的镜像版本,我们这里使用 gitlab/gitlab-ce:latest

docker pull gitlab/gitlab-ce:latest

二. 容器创建

1、映射目录分配

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/
2、端口映射规划

重点: 考虑到我们的整个devops体系安装在同一台虚拟机上,其中肯定会出现不同应用占用相同端口的情况,故而我们对容易重复占用的端口对外映射时,进行相应调整。
gitlab镜像对外提供服务的端口包括 2280443
规划如下:

10022:22
10080:80
10443:443
3、容器创建

目录创建脚本

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

创建结果如下:
gitlab容器创建

三. 浏览器访问

1、IP地址直接方案

在浏览器中输入 http://192.168.1.150:10080 打开gitlab登录页。 首次打开时,须设置root账号的密码。

设置密码成功后,即可通过该密码登录gitlab
gitlab登录页面
注意:由于gitlab启动稍微有些慢,开始可能会出现如下界面,等待一会再访问即可。

2、nginx 域名代理

服务端配置:/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 端口
  • 官方文档:Module ngx_http_proxy_module

客户端配置: 用户本地修改 hosts 文件,添加域名映射

192.168.43.150 git.tysite.org

四. gitlab 的 docker-compose 配置

gitlabdocker-compose语法块模板如下,请将其加入到devopsdocker-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协议 拉取地址的端口

五. 客户端工具

1、软件下载

官方地址:https://git-scm.com/downloads
本地开发环境以windows系统为例,其他操作系统可自行在官网下载对应系统的软件。

2、软件安装

作者使用的 git 版本为 Git-2.8.1-64-bit.exe ,于windows系统下,界面操作即可。
安装选择
选择命令提示符模式

devops 完整的目录规划、docker-compose.yml 及 nginx配置,请到作者码云下载:https://gitee.com/tysite/devops

发布了27 篇原创文章 · 获赞 2 · 访问量 3499

猜你喜欢

转载自blog.csdn.net/tysite/article/details/103460633