部署gitlab详解

简介: 部署gitlab详解

Gitlab 安装

文章目录

1. 简介

Gitlab是一个开源的Git代码仓库系统,可以实现自托管的Github项目,即用于构建私有的代码托管平台和项目管理系统。系统基于Ruby on Rails开发,速度快、安全稳定。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

1832b220aa754cd18c504acc7686a560.png

2. 准备

install docker in ubuntu

卸载旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc
 rm -rf /var/lib/docker/

配置docker

 sudo apt-get update
 sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
#下载gpg证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#其他版本
 echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装docker

#查看版本
 apt-cache madison docker-ce
 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io
 或者指定特定版本
 sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

3. 部署

3.1 docker安装GitLab-ce

GitLab的安装可以直接run,或者通过docker-compose文件指定安装流程,这里使用前者进行快速简单安装,后者后续更新。

拉取GitLab-ce镜像,查看镜像信息

$ docker pull gitlab/gitlab-ce
$ docker image ls

#配置存储位置

$ mkdir /opt/gitlab
$ export GITLAB_HOME=/opt/gitlab
$ echo $GITLAB_HOME
/opt/gitlab

运行gitlab

$ docker run -d --hostname gitlab.example.com -p 443:443                 -p 80:80 -p 22:22 --name gitlab --restart

:Z能够确保有足够的权限的权限创建文件

正常要等1~2分钟。

假如报错 bash /opt/gitlab/embedded/bin/runsvdir-start: line 24: ulimit: pending signals: cannot modify limit: Operation not permitted /opt/gitlab/embedded/bin/runsvdir-start: line 37: /proc/sys/fs/file-max: Read-only file system Configuring GitLab package... Configuring GitLab...

解决方法:

chmod 2770 /opt/gitlab/data/git-data/repositories

docker restart gitlab


查看容器运行情况,出现gitlab运行信息表明启动成功

$ docker ps

浏览器进入http://192.168.211.70:8080,使用root账户登录并设置密码即可进入管理员界面

1832b220aa754cd18c504acc7686a560.png

环境变量GITLAB_OMNIBUS_CONFIG添加到Docker run来预先配置GitLab Docker镜像。这个变量包含任何gitlab.rb设置,,GITLAB_OMNIBUS_CONFIG中包含的设置不写入gitlab.rb配置文件。

下面是一个设置外部URL并在启动容器时启用LFS的例子:

docker run --detach \
  --hostname gitlab.example.com \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://my.domain.com/'; gitlab_rails['lfs_enabled'] = true;" \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ee:latest

使用不同的端口

如果你想使用一个不同于80 (HTTP)或443 (HTTPS)的主机端口,你需要添加一个单独的——publish指令到docker运行命令。

$ docker run --detach \
  --hostname gitlab.example.com \
  --publish 8929:8929 --publish 2289:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ee:latest
$ docker exec -it gitlab /bin/bash
$ vi /etc/gitlab/gitlab.rb
# For HTTP
external_url "http://gitlab.example.com:8929"
or
# For HTTPS (notice the https)
external_url "https://gitlab.example.com:8929"
gitlab_rails['gitlab_shell_ssh_port'] = 2289
$ gitlab-ctl reconfigure

端映射格式为“hostPort:containerPort”。更多信息请参阅Docker的文档

external_url中指定的端口必须与Docker发布给主机的端口相匹配。此外,如果NGINX监听端口没有在NGINX ['listen_port']中显式设置,它将从external_url中拉出。要了解更多信息,请参阅NGINX文档

3.2 Docker-compose安装gitlab

使用Docker Compose,你可以轻松地配置、安装和升级基于Docker的GitLab安装:

version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'
        # Add any other gitlab.rb configuration here, each on its own line
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'
docker-compose up -d

如果我们自定义HTTPSSH端口。需要定义GITLAB_OMNIBUS_CONFIG变量是如何匹配端口部分的:

version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8929:8929'
      - '2224:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'

4. 配置

4.1 获取密码

$ cat /etc/gitlab/initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: mmPPA7vlzRPgdEgQXu1LnWbok6OUNgiAgoZvhYnCgrw=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

mmPPA7vlzRPgdEgQXu1LnWbok6OUNgiAgoZvhYnCgrw=是默认的初始密码,

我们可以在/etc/gitlab/gitlab.rb配置文件中设置自己的root密码,也可以用默认的密码登陆再修改自己想要的密码。要注意该文件24小时后自动删除

4.2 修改密码

1832b220aa754cd18c504acc7686a560.png

1832b220aa754cd18c504acc7686a560.png

修改重新登陆即可。


相关文章
|
4月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
8月前
|
JavaScript Java 应用服务中间件
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
220 2
|
4月前
|
运维 Linux 开发工具
第22篇 如何部署gitLab进行开发版本控制
第22篇 如何部署gitLab进行开发版本控制
|
6月前
|
jenkins 持续交付 数据安全/隐私保护
GitLab——如何快速部署GitLab仓库
GitLab——如何快速部署GitLab仓库
56 0
|
8月前
|
运维 Serverless 开发工具
函数计算产品使用问题之通过GitLab仓库来部署代码,该如何配置GitLab仓库
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
106 0
|
9月前
无缝构建与部署:GitLab CI/CD首秀的实战攻略
无缝构建与部署:GitLab CI/CD首秀的实战攻略
252 0
无缝构建与部署:GitLab CI/CD首秀的实战攻略
|
8月前
|
Docker 容器
docker 部署gitlab
docker 部署gitlab
118 0
|
9月前
|
Linux Go iOS开发
GitLab Runner全解析:深入了解构建、测试和部署的关键执行者
GitLab Runner全解析:深入了解构建、测试和部署的关键执行者
1476 0
GitLab Runner全解析:深入了解构建、测试和部署的关键执行者
|
存储 持续交付 开发工具
使用docker-compose私有化部署 GitLab
在软件开发和协作过程中,版本控制是至关重要的一环。GitLab 是一个功能强大的开源平台,提供了完整的代码管理功能,包括版本控制、问题跟踪以及持续集成等。
720 2
使用docker-compose私有化部署 GitLab
|
Linux 开发工具 git
淘东电商项目(07) -GitLab简介以及Docker部署
淘东电商项目(07) -GitLab简介以及Docker部署
113 0

热门文章

最新文章