网上很多类似教程,但多少有点夹带私货,有的竟然拉取的第三方镜像,而且很多都要修改配置文件,完全不知道是为什么,于是结合其他人的博客和官方文档,知其然也要知其所以然,于2023年4月17日写下这篇。

官方文档:

  https://docs.gitlab.com/ee/install/docker.html

主要参考博客:

  https://www.cnblogs.com/diaomina/p/12830449.html

这篇文档很通顺,但中途有错误,需结合评论一起食用

建议:

  1.服务器内存建议大于4G,抄自:https://about.gitlab.com/install/

  2.如果已经部署好gitlab,想看cicd环节,请移至最终篇:docker部署gitlab CI/CD (二)终篇:部署gitlab runner和添加gitlab-ci.yml文件 终极踩坑版

作者环境:

  CentOS7

开始:

  #1.拉取gitlab镜像

docker pull gitlab/gitlab-ce

ee是企业版,ce是社区版

  #2.运行gitlab

docker run \
-itd \
-p 9080:9080 \
-p 9022:22 \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/log:/var/log/gitlab \
-v /home/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce

解释:一般80和22端口早就被占用了,

这里之所以映射容器内部9080而不是80,因为启动后仓库的http克隆地址gitlab会认为是80,从而给你错误的仓库地址,如下图,并没有端口号,实际是请求不通的

-i  以交互模式运行容器,通常与 -t 同时使用命令解释:

-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用

-d  后台运行容器,并返回容器ID

-p 9080:9080  将容器内9080端口映射至宿主机9080端口,这是访问gitlab的端口

-p 9022:22  将容器内22端口映射至宿主机9022端口,这是访问ssh的端口

-v /home/gitlab/etc:/etc/gitlab  将容器/etc/gitlab目录挂载到宿主机目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样

--restart always  容器自启动

--privileged=true  让容器获取宿主机root权限

--name gitlab-test  设置容器名称为gitlab

gitlab/gitlab-ce  镜像的名称,这里也可以写镜像ID

  #2.1.修改配置文件

vi /home/gitlab/etc/gitlab.rb
添加下面三条,external_url的端口号要和上面容器内映射的端口号相同

external_url 'http://192.168.52.128:9080'
gitlab_rails['gitlab_shell_ssh_port'] = 9022
gitlab_rails['gitlab_ssh_host'] = '192.168.52.128'

:wq退出vi,然后重启

docker restart gitlab

配置文件必须要改,不然代码里的仓库地址是一堆乱码,如下:

正确的克隆地址应该如下图,可以等后面配置完再回头看看:

  #3.查看账号初始密码

sudo docker exec -it <CONTAINERID> grep 'Password:' /etc/gitlab/initial_root_password

<CONTAINERID>为你的容器ID

  #4 浏览器访问gitlab地址:192.168.5.128:9080

不出意外的话会出现如下界面,账号是root,

如果出现意外,那就考虑一下防火墙问题或配置文件的端口号和容器映射的端口号不一样

这个界面比较新,因为前几天我在公司部署后跟大部分文档界面一样,左侧有说明文字,今天在家部署,可能版本有更新变简洁了。当前版本:15.10

  #5.关闭注册

自己或公司的gitlab,肯定不能开放注册,一般登录后进首页会提示你关闭注册,不过没关系,这里告诉你怎么手动关闭

把这两个取消勾选,然后点保存

  #6.汉化

找到Localization,选择简体中文,保存,刷新页面

  #7.修改密码

这个自带的密码只会保留24小时,修改一下密码

左侧点击密码,自行修改

  #8.首页汉化

重新到了登录界面才发现,底部也有一个语言选项

选择简体中文,完事,最后记得看看仓库的克隆地址是否正确,不正确再回头看看修改配置文件步骤

结束

docker部署gitlab CI/CD (一)第一篇:部署gitlab及汉化的更多相关文章

  1. 使用Gitlab CI/CD功能在本地部署 Spring Boot 项目

    前提条件: 1.Docker安装Gitlab,地址:https://www.cnblogs.com/sanduzxcvbnm/p/13814730.html 2.Docker安装Gitlab-runn ...

  2. 使用 Gitlab CI/CD 实现自动化发布站点到 IIS

    说明 这里先介绍下两个东西 CI/CD.GitLab Runner,当然在此之前你需要对 git 有所了解,关于 git 这里不做说明,可以自行百度. 首先介绍 CI/CD :随着我们开发方式的转变, ...

  3. GitLab CI/CD的官译【原】

    CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断 ...

  4. [转]GitLab Continuous Integration (GitLab CI/CD)

    本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...

  5. .Net Core自动化部署系列(三):使用GitLab CI/CD 自动部署Api到Docker

    之前写过使用Jenkins实现自动化部署,最近正好没事研究了下GitLab的自动化部署,顺便记录一下. 使用GitLab部署我们需要准备两件事,第一个起码你得有个GitLab,自己搭建或者使用官方的都 ...

  6. GitLab CI/CD 自动化部署入门

    前言:因为找了B站内推,测试开发,正好知道内部使用GitLab做自动化测试,所以简单学了一下,有错误的地方请指正. 入门 初始化 cp: 无法获取'/root/node-v12.9.0-linux-x ...

  7. Jenkins与Docker的自动化CI/CD实战

    Jenkins与Docker的自动化CI/CD实战 互联网Java架构 2018-09-19 15:46:13 一.发布流程设计 工作流程: 开发人员提交代码到Git版本仓库:Jenkins人工/定时 ...

  8. 【Devops】【docker】【CI/CD】2.docker启动jenkins环境+安装必要的插件

    [注意:]jenkins的docker镜像,需要从官网进入直接获取,其他地方获取到的docker镜像,可能因为Jenkins版本过低,导致后续插件安装失败等问题!!! ================ ...

  9. 前端初探 Gitlab CI/CD

    前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就是其中一项,那么什么是 C ...

  10. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

随机推荐

  1. nat是干什么的,为什么要有nat?以及谈谈ovs里使用ct实现nat功能

    博客竟然不显示更新的时间,只有个发布时间.看起来像2个月没更新一样,其实更新了几行呢.好几个东西想理一下,本来想和周记放一起了,但放一起就没有主题了. 当然一搜也有一些很好的博客,更详细:https: ...

  2. C++/Qt网络通讯模块设计与实现(四)

    在C++/Qt网络通讯模块设计与实现(三)中提到了一个概念,即接受者所依附的线程:关注我微信公众号的技术朋友留言对该概念还是不解,这节就单独讲述这个概念的理论与实际应用,这种应用无处不在,因为与Qt的 ...

  3. THFuse: An infrared and visible image fusion network using transformer and hybrid feature extractor 论文解读

    THFuse: An infrared and visible image fusion network using transformer and hybrid feature extractor ...

  4. C++ 标准库 sort() / stable_sort() / partial_sort() 对比

    C++ STL标准库中提供了多个用于排序的Sort函数,常用的包括有sort() / stable_sort() / partial_sort(),具体的函数用法如下表所示: 函数 用法 std::s ...

  5. 性能最快的代码分析工具,Ruff 正在席卷 Python 圈!

    几天前,Python 开源社区又出了一个不小的新闻:HTTPX 和 Starlette 在同一天将在用的代码分析工具(flake8.autoflake 和 isort)统一替换成了 Ruff. HTT ...

  6. LeeCode 713 乘积小于k的子数组

    LeeCode 713 题目描述: 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目. 标签: 双指针.滑动窗口 建立模型 枚举子数组的右端 ...

  7. python选出一定数量的随机文件到某个文件夹

    import os import random import shutil def move_file(target_path, save_path, number): file_list = os. ...

  8. XXL-JOB定时任务框架(Oracle定制版)

    特点 xxl-job是一个轻量级.易扩展的分布式任务调度平台,能够快速开发和简单学习.开放源代码并被多家公司线上产品使用,开箱即用.尽管其确实非常好用,但我在工作中使用的是Oracle数据库,因为xx ...

  9. Semantic Kernel 入门系列:🥑Memory内存

    了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样 ...

  10. 【Spring5】数据库事务操作

    Spring针对事务的操作 事务的概念:事务是数据库最基本的单元,逻辑上的一组操作,要么都成功,如果有一个操作失败则都失败. 事务的特性:ACID 原子性.一致性.隔离性.持久性 JavaEE环境三层 ...