【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一样使用。

相关文章
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1179 108
|
8月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
7月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
631 0
|
10月前
|
运维 监控 数据可视化
容器化部署革命:Docker实战指南
容器化部署革命:Docker实战指南
|
10月前
|
存储 运维 安全
Docker化运维:容器部署的实践指南
Docker化运维:容器部署的实践指南
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
938 4
|
8月前
|
运维 数据可视化 C++
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
531 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
|
7月前
|
存储 Kubernetes 持续交付
为什么Docker容器化改变了开发与部署?
为什么Docker容器化改变了开发与部署?
|
11月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
531 19
【赵渝强老师】数据库不适合Docker容器化部署的原因