Docker创建本地Gitlab并同时使用Github

前情提要

公司内部一直都是用svn。由于项目的加入新成员。代码质量不稳。但项目可能随时要更新。

处于管理组员代码方便性考虑,由于公司暂时没考虑环git,暂时在公司内部搭建个gitlab项目组自用。

步骤

搭建Docker环境

通过 docker 搭建自用的 gitlab 服务

  • 删除旧版本的 docker

    1
    yum remove docker docker-common docker-selinux docker-engine
  • 增加 docker yum 源

    1
    2
    3
    4
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum-config-manager --enable docker-ce-edge
    yum-config-manager --enable docker-ce-test
  • 可直接下载Dokcer最新版

    1
    yum install docker-ce
  • 也可查看所有有效版本

    1
    yum list docker-ce --showduplicates | sort -r
  • 自定义 docker 配置:graph 定义 docker 运行的目录, registry-mirrors 定义了 docker 获取镜像的仓库的地址。

    1
    2
    3
    4
    5
    6
    7
    mkdir /etc/docker
    vi /etc/docker/daemon.json
    {
    "graph":"/u1/docker",
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
  • 启动 docker

    1
    2
    systemctl enable docker //设置开机自动启动
    systemctl start docker
  • 查看 docker信息

    1
    docker info
docker info

安装 Portainer – docker可视化工具

  • 拉取最新镜像

    1
    docker pull docker.io/portainer/portainer
  • 运行

    1
    2
    3
    4
    5
    docker run -d -p 9000:9000 \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --name prtainer-test \
    docker.io/portainer/portainer

安装 Gitlab

  • 获取最新镜像

    1
    docker pull gitlab/gitlab-ce:latest
  • 查看docker镜像可选择中文镜像

    1
    docker search gitlab
  • 查看磁盘空间大小,选择适合的持久化容器数据的存放位置。

    1
    df -h
    df -h
  • 运行

    1
    2
    3
    4
    5
    6
    7
    8
    docker run \
    --restart=always \
    --publish 4443:443 --publish 8089:80 --publish 2222:22 \
    --name gitlab \
    --volume /u1/gitlab-ce/config:/etc/gitlab \
    --volume /u1/gitlab-ce/logs:/var/log/gitlab \
    --volume /u1/gitlab-ce/data:/var/opt/gitlab \
    gitlab/gitlab-ce
  • 修改external_url

    1
    2
    3
    4
    5
    6
    7
    8
    9
    1. 方法一:
    cd /u1/gitlab/config/
    vi gitlab.rb
    2. 方法二:
    docker exec it gitlab //进入容器内部
    cd /etc/gitlab/
    vi gitlab.rb
    gitlab-ctl restart
    /external_url --进入编辑模式可通过斜杆搜索,修改成:external_url 'http://IP'
    修改前 修改后

同时使用Github和本地Gitlab

  • 生成密钥

    1
    2
    在~/.ssh/目录会生成gitlab_id-rsa和gitlab_id-rsa.pub私钥和公钥。我们将gitlab_id-rsa.pub中的内容粘帖到公司GitLab服务器的SSH-key的配置中。
    $ ssh-keygen -t rsa -C "注册的gitlab邮箱" -f ~/.ssh/gitlab_id-rsa
  • 添加config

    1
    2
    cd ~/.ssh
    touch config
  • config内容例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Host github.com
    Port 22
    User git
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id-rsa
    Host gitlab //当指定gitlab则项目的git@IP:test/test.git的IP要相应替换成gitlab
    Port 2222
    User git
    HostName IP
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id-rsa
  • 校验是否可以连接成功

    1
    ssh -T git@gitlab
    welcome
  • 项目指定账户和邮箱
    1
    2
    git config - -local user.name "用户名"<br>
    git config - -local user.email "邮箱"
0%