写在开始

此实验将Harbor和GitLab装在了同一台虚拟机中,虽然修改了GitLab的端口,但经实验因个体差异导致某些电脑修改端口后GitLab也无法启动,故有了第二篇文档:容器存储和网络基础(新建虚拟机版)
第二篇文档将GitLab独立出来,解决了Harbor和GitLab的端口问题,请根据自身情况选择合适的方案

容器存储和网络基础(修改端口版)

开启Harbor

  1. 关闭SELinux
    sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
    setenforce 0
  2. 进入Harbor的安装目录下
    cd /root/harbor/
  3. 虚拟机重启后需要手动开启Harbor
    docker-compose start
  4. 或者可以设置Harbor为开机自启动
    vi harbor.service 在文件中添加以下内容:
    1
    2
    3
    4
    5
    6
    7
    [Unit]
    Description=Redis
    After=network.target
    [Service]
    ExecStart= /usr/bin/docker-compose start
    [Install]
    WantedBy=multi-user.target

Docker-compose部署GitLab

  1. 新建gitlab安装目录
    mkdir /usr/local/gitlab/
    cd /usr/local/gitlab/
  2. 新建配置文件
    vi docker-compose.yml并添加以下内容(注意IP改为你的IP和配置项的缩进格式)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    version: '3'
    services:
    web:
    image: 'twang2218/gitlab-ce-zh'
    restart: always
    hostname: '192.168.200.120'
    environment:
    TZ: 'Asia/Shanghai'
    GITLAB_OMNIBUS_CONFIG: |
    external_url 'http://192.168.200.120:82'
    gitlab_rails['gitlab_shell_ssh_port'] = 2222
    unicorn['port'] = 8888
    nginx['listen_port'] = 82
    ports:
    - '82:82'
    - '8443:443'
    - '2222:22'
    volumes:
    - ./config:/etc/gitlab
    - ./data:/var/opt/gitlab
    - ./logs:/var/log/gitlab

    注:此处因为将Harbor和GitLab装在了同一台服务器上,为避免端口冲突,所以将GitLab的Http端口设置为82。如果82端口不行,改为8181


3. 创建gitlab所需使用的相关目录(此步骤可忽略,也可将上边配置文件的volumes选项修改为此路径)
mkdir /opt/gitlab/{config,data,logs} -p
4. 拉取gitlab中文版镜像
docker pull twang2218/gitlab-ce-zh
5. 查看镜像是否拉取成功
docker images
6. 启动gitlab的容器
docker-compose up -d
7. 查看容器是否正常运行
docker ps -a

8. 设置gitlab开机启动(第二句echo需设置成你自己的安装目录下)
chmod +x /etc/rc.local
echo "cd /usr/local/gitlab && docker-compose up -d" >> /etc/rc.local

GitLab相关操作

GitLab创建项目

  1. 浏览器输入http://IP地址:82,第一次访问需设置密码(账户名:root,且此处需要指定端口号为82)
  2. 新建一个项目,项目名称随意填写,设置好后点击create project创建项目

  3. 创建好项目后如下图所示,点击按钮复制项目ssh地址,之后会用到

添加密钥

  1. 在Linux中生成密钥(输入命令后三次回车)
    ssh-keygen
  2. 进入文件复制ssh密钥
    vi /root/.ssh/id_rsa.pub
  3. 回到浏览器点击右边的头像——设置
  4. 将复制的密钥添加到gitlab中,点击Add key添加密钥

Git上传代码到Gitlab仓库

  1. 移动到任意一个目录下,克隆远程仓库到本地,仓库地址为上边复制过的SSH地址
    cd /root
    git clone 你的仓库地址
    cd 仓库名称

  2. 添加git账户
    git config --global user.name "自定义账户名"

    例:git config --global user.name "root"

  3. 添加git邮箱
    git config --global user.email "你的邮箱"

    例:git config --global user.email "[email protected]"

  4. 上传代码到GitLab(操作与Windows里上传到Github操作一样),以下操作省略详细步骤
    git add .
    git commit -m "1.0.0"
    git push origin master

  5. 推送代码后再次查看浏览器上的GitLab仓库,可看见上传成功的结果

扩展

重启服务器后启动Gitlab

  1. 进入Gitlab的安装目录下
    cd /usr/local/gitlab/
  2. 启动Gitlab
    docker-compose up -d
  3. 可使用lsof查看端口占用情况
    lsof -i :80
  4. 导出镜像
    docker save 镜像ID > 导出的名称.tar
  5. 导入镜像
    docker load -i twang2218-gitlab-ce-zh.tar
  6. 修改镜像名称
    docker tag 镜像ID 修改后ID
  7. 停止创建的容器
    docker-compose stop
  8. 重启当前目录下的容器
    docker-compose -f docker-compose.yml up -d
  9. 删除容器
    docker rm 选项 容器ID

    -f :强制删除一个运行中的容器

-l :移除容器间的网络连接,而非容器本身
-v :删除与容器关联的卷

参考链接

Docker-compose部署gitlab中文版:https://www.cnblogs.com/linuxk/p/10100431.html#2%E3%80%81%E5%AE%89%E8%A3%85docker-compose
Docker-compose安装GitLab:https://blog.csdn.net/weixin_44155097/article/details/102550036
Git相关命令:https://www.cnblogs.com/wwtao/p/12019190.html
GitLab使用自定义端口01:https://blog.csdn.net/shan165310175/article/details/92797199
GitLab使用自定义端口02:https://blog.csdn.net/qq_37171817/article/details/107791947