【devops】二、Code阶段工具——容器部署Gitlab

简介: 【devops】二、Code阶段工具——容器部署Gitlab

准备工作


服务器 IP 要求
gitlab 192.168.2.210 有docker和docker-compose


二、Code阶段工具


还记得这张图嘛?

02c87f09b17547199d319a8ba4e8f82e.png

通过【DevOps介绍】这篇文章我们知道了整个软件的开发流程可以被划分为好多个小的步骤,这里就介绍一下再CODE阶段需要准备的工具。主要是Git和Gitlab,一般开发人员使用的比较多,开发人员需要将写好的代码上push到Git上面,供Jenkins拉取以及进行后面的操作。


在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。


2.1 Git软件安装

https://git-scm.com/(傻瓜式安装下载软件)


2.2 Docker方式安装GitLab

这里需要单独准备一台服务器,作为gitlab服务端。

gitlab安装有两种方式,一种是使用docker run 命令运行部署;另一种是使用docker-compose.yml文件部署。这里使用第一种方式。


法一:docker run 命令部署Gitlab
# 1. 检查网络
docker network create devops-tier
sysctl -p
cat >> /etc/sysctl.conf<<EOF
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
EOF
#再次加载
sysctl -p
# 2. 创建挂载目录
mkdir /usr/local/docker/gitlab_docker/config -p
mkdir /usr/local/docker/gitlab_docker/logs -p
mkdir /usr/local/docker/gitlab_docker/data -p
# 3. docker run安装  
docker run -d --name gitlab --net=devops-tier \
--hostname gitlab \
-p 443:443 -p 80:80 -p 2222:22 \
--restart always \
--volume /usr/local/docker/gitlab_docker/config:/etc/gitlab \
--volume /usr/local/docker/gitlab_docker/logs:/var/log/gitlab \
--volume /usr/local/docker/gitlab_docker/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
# 4. 修改gitlab url
vi /usr/local/docker/gitlab_docker/config/gitlab.rb
顶部输入下面所有内容:
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.1.100'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.2.210'      #这里是gitlab服务器的IP
# 此端口是run时22端口映射的2222端口
gitlab_rails['gitlab_shell_ssh_port'] = 2222


421818e23e764a54af64c7994039d8b0.png

法二:使用docker-compose.yml文件部署Gitlab
  1. 查看GitLab镜像
docker search gitlab


  1. 拉取GitLab镜像
docker pull gitlab/gitlab-ce:latest


  1. 准备docker-compose.yml文件
cd /usr/local/docker/gitlab_docker/
vim docker-compose.yml
version: '3.1'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.2.210:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8929:8929'
      - '2224:2224'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'


  1. 启动容器(需要稍等一小会……)
cd /usr/local/docker/gitlab_docker
docker-compose up -d


2.3 登录Gitlab网页


  1. 用IP访问GitLab首页

如果设置端口号不是默认的8080,则需要用IP+端口号访问

6a6db48e43b94bd68dce2e1d7c32b913.png

  1. 查看root用户初始密码
docker exec -it gitlab cat /etc/gitlab/initial_root_password

803e7a96916f4f7f80f8367f2f629bd1.png

3. 登录root用户

7217955d17354743b68307f9d1ab2908.png

第一次登录后需要修改密码

7e709f60d08d44ceb31d167500e7edfb.png

搞定后,即可像Gitee、GitHub一样使用。

相关文章
|
6月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1009 108
|
6月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
4月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
760 4
|
6月前
|
运维 数据可视化 C++
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
447 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
|
5月前
|
存储 Kubernetes 持续交付
为什么Docker容器化改变了开发与部署?
为什么Docker容器化改变了开发与部署?
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
敏捷开发 监控 Java
阿里云云效产品使用合集之Codeup WebIDE环境下,如何使用通义灵码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。