【Git管理工具】使用Docker+浪浪云服务器部署GitLab服务器

一、什么是GitLab

1.1.GitLab简介

GitLab 是一个开源的 DevOps 平台,它基于 Git 版本控制系统提供了从项目规划、源代码管理到持续集成、持续部署、监控和安全的完整生命周期管理。GitLab 是一个为开发者提供协作工作的工具,它使得团队能够高效地在同一个应用程序内完成整个软件开发过程。

1.2.GitLab特点

  1. **全功能的CI/CD:**GitLab 提供了内置的持续集成和持续部署(CI/CD)功能,使开发团队能够自动化代码的构建、测试和部署过程,从而提高软件交付的速度和质量。

  2. **单一应用程序:**与需要集成多个独立工具的其他解决方案不同,GitLab 提供了一个单一的应用程序来处理开发生命周期中的所有阶段。这减少了维护成本,避免了插件不兼容的问题,并提高了效率。

  3. **项目管理和议题跟踪:**GitLab 提供了灵活的问题跟踪系统,允许用户创建、管理和跟踪议题(issues)。团队可以使用看板(Kanban)板进行项目管理,规划迭代和跟踪进度。

  4. **代码审查:**通过合并请求(Merge Requests, MRs),GitLab 提供了代码审查功能,以确保代码质量,并通过讨论来改进代码实现。

  5. **安全和合规性:**GitLab 强调安全性,提供了动态和静态的应用程序安全测试、依赖扫描和容器扫描,以便在代码发布之前检测潜在的安全问题。

  6. **集成:**尽管 GitLab 是一个全面的DevOps工具,它也提供了与其他工具(如JIRA、Slack、Kubernetes等)的集成能力,以便团队可以使用他们喜欢的工具。

  7. **自托管和云托管选项:**GitLab 提供了多种部署选项,包括完全托管的GitLab.com服务以及可以在私有服务器上自托管的GitLab CE(社区版)和EE(企业版)。

  8. **可扩展性和可定制性:**企业可以根据自己的需求定制和扩展 GitLab 的功能,例如通过使用API或编写自定义的GitLab CI的YAML文件。

  9. **社区支持:**GitLab 拥有一个活跃的社区,用户可以从社区获得帮助,分享最佳实践,或者为GitLab的发展贡献代码。

  10. **开源:**GitLab CE 是开源的,这意味着用户可以自由使用、修改和分发软件,这提供了高度的透明度和可定制性。

GitLab 作为一个综合性的 DevOps 平台,它的目标是简化软件开发工作流程,使开发、运维以及安全团队能够在一个连贯的环境中协同工作,从而加快交付速度,减少操作复杂性,并提高软件的质量和安全性。

GitLab地址:The most-comprehensive AI-powered DevSecOps platform | GitLab

二、前期准备

2.1.服务器准备

推荐浪浪云服务器,稳定!高防!!有保证!!!

浪浪云官方新上的活动,4H4G一年仅需要259,活动链接:浪浪云 - 提供高防 稳定 有保障

系统我这边使用的是centos,但是用的Docker部署,用其他操作系统同样可以

2.2.连接服务器

连接过程参考**浪浪云帮助文档,如果是独立IP正常走22的ssh端口即可

2.3.安装Docker以及Docker Compose

安装Docker,使用国内源

yum update #更新软件源

输入Y确定跟新,可以看到浪浪云的网速还是非常快的

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #安装Docker使用阿里源

检查Docker服务是否正常运行,确保Docker正常运行

root@ECS3682 \~\]# docker -v Docker version 26.0.0, build 2ae903e \[root@ECS3682 \~\]# systemctl start docker \[root@ECS3682 \~\]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2024-04-11 03:49:34 EDT; 2s ago Docs: [https://docs.docker.com](https://docs.docker.com/ "https://docs.docker.com") Main PID: 92646 (dockerd) Tasks: 8 Memory: 33.4M CGroup: /system.slice/docker.service └─92646 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ​ 4月 11 03:49:32 ECS3682 systemd\[1\]: Starting Docker Application Container Engine... 4月 11 03:49:32 ECS3682 dockerd\[92646\]: time="2024-04-11T03:49:32.905107057-04:00" level=info msg="Starting up" 4月 11 03:49:32 ECS3682 dockerd\[92646\]: time="2024-04-11T03:49:32.961431066-04:00" level=info msg="Loading containers: start." 4月 11 03:49:34 ECS3682 dockerd\[92646\]: time="2024-04-11T03:49:34.188213741-04:00" level=info msg="Firewalld: interface docker0 already part of docker zone, retu\> 4月 11 03:49:34 ECS3682 dockerd\[92646\]: time="2024-04-11T03:49:34.382595216-04:00" level=info msg="Loading containers: done." 4月 11 03:49:34 ECS3682 dockerd\[92646\]: time="2024-04-11T03:49:34.419428998-04:00" level=info msg="Docker daemon" commit=8b79278 containerd-snapshotter=false sto\> 4月 11 03:49:34 ECS3682 dockerd\[92646\]: time="2024-04-11T03:49:34.419677146-04:00" level=info msg="Daemon has completed initialization" 4月 11 03:49:34 ECS3682 dockerd\[92646\]: time="2024-04-11T03:49:34.467028373-04:00" level=info msg="API listen on /run/docker.sock" 4月 11 03:49:34 ECS3682 systemd\[1\]: Started Docker Application Container Engine. #### 安装Docker Compose curl -L [https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-\`uname](https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-%60uname "https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname ") -s`-`uname -m\` \> /usr/local/bin/docker-compose ​ sudo chmod +x /usr/local/bin/docker-compose #添加可执行权限 ​ docker-compose --version #查看版本 ![image-xjap.png](https://file.jishuzhan.net/article/1787982326693629953/4d53155f4a9a87c045ea819a32e04262.webp) ## 三、正式部署GitLab ### 3.1.创建对应的目录以及配置文件 mkdir -p /data/gitlab/{data,logs,config} \&\& cd /data/gitlab/ ### 3.2.创建docker-compose.yml文件 vim /data/gitlab/docker-compose.yml 对应内容如下 version: "3" services: gitlab: container_name: gitlab image: gitlab/gitlab-ce:latest hostname: '浪浪云ip' restart: always ports: * 8011:8011 * 8443:443 * 2222:22/tcp volumes: * /etc/localtime:/etc/localtime * /data/gitlab/data:/var/opt/gitlab * /data/gitlab/config:/etc/gitlab * /data/gitlab/logs:/var/log/gitlab environment: GITLAB_OMNIBUS_CONFIG: \| external_url '浪浪云:8011' gitlab_rails\['gitlab_shell_ssh_port'\] = 2222 deploy: resources: limits: memory: 4G reservations: memory: 1G ### 3.3.使用docker compose启动容器 docker compose up -d ![image-e9eg.png](https://file.jishuzhan.net/article/1787982326693629953/8237f4870c076e351d63c3c9cfb0f365.webp) > 如果速度过慢的话可以更改国内源 > > sudo vim /etc/docker/daemon.json > > #添加如下配置文件 > > { > > "registry-mirrors": \["[https://docker.mirrors.ustc.edu.cn](https://docker.mirrors.ustc.edu.cn/ "https://docker.mirrors.ustc.edu.cn")"

}

#保存配置文件

sudo systemctl daemon-reload

#重启Docker

sudo service docker restart

dokcer ps #容器状态

3.4.配置端口转发

推荐浪浪云服务器,稳定!高防!!有保证!!!

来到浪浪云服务器管理界面

转发上面对应的那几个端口号,如果是独立IP的话,就可以不用进行端口转发

通过浪浪云的IP:转发的80端口

四、GitLab设置

4.1.重置登录密码

进入容器

root@docker gitlab\]# docker exec -it gitlab /bin/bash root@gitlab:/# 进入控制台 gitlab-rails console -e production 查询管理员密码 user = User.where(id:1).first #修改密码 user.password='langlangyun' ## 保存 user.save! ## 退出 exit ### 4.2.设置为中文 > 在Preferences页面中,找到"Localization"区域,将"Language"选项修改为"简体中文" ![image-qonm.png](https://file.jishuzhan.net/article/1787982326693629953/181f47ecb0c2258973f4ae148f1d4d9c.webp)

相关推荐
ARM2NCWU1 小时前
安卓原生兼容服务器
android·运维·服务器
Edward-tan2 小时前
Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流
docker·ffmpeg·srs·rtmp
nihuhui6662 小时前
NFS服务器实验
运维·服务器
PWRJOY2 小时前
Flask-SQLAlchemy核心概念:模型类与数据库表、类属性与表字段、外键与关系映射
服务器·数据库·flask
三三十二3 小时前
Labview基础使用教程
服务器·前端·javascript
2302_799525743 小时前
【Linux】第二十五章 运行容器
linux·运维·服务器
朱包林3 小时前
day18-特殊符号
linux·运维·服务器·ubuntu·centos
m0_747124535 小时前
服务器并发实现的五种方法
服务器·网络编程
过河不拆乔6 小时前
使用 Docker 搭建 PyWPS 2.0 服务全流程详解
docker·wps
MarkHD6 小时前
第八天 搭建车辆状态监控平台(Docker+Kubernetes) OTA升级服务开发(差分升级、回滚机制)
docker·容器·kubernetes