Docker 部署 GitLab

news/2025/2/9 5:53:29 标签: docker, gitlab, 容器, 运维

一、下载镜像

docker pull gitlab/gitlab-ce

二、运行容器

docker run -d --name gitlab-20080 \n
-p 20443:443 -p 20080:80 -p 20022:22 \n
-v /wwwroot/opt/docker/gitlab-20080/etc:/etc/gitlab \n
-v /wwwroot/opt/docker/gitlab-20080/log:/var/log/gitlab \n
-v /wwwroot/opt/gitlab-20080/gitlab/data:/var/opt/gitlab \n
--privileged=true gitlab/gitlab-ce

这里稍微解释下命令:
-d                #后台运行,全称:detach
-p 20443:443      #将容器内部端口向外映射
-p 20080:80       #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 20022:22       #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--name gitlab-20080    #设置容器名称为gitlab-20080
-v /wwwroot/opt/docker/gitlab-20080/etc:/etc/gitlab    #将容器/etc/gitlab目录挂载到宿主机/wwwroot/opt/docker/gitlab-20080/etc目录下,若宿主机内此目录不存在将会自动创建
-v /wwwroot/opt/docker/gitlab-20080/log:/var/log/gitlab    #与上面一样
-v /wwwroot/opt/docker/gitlab-20080/data:/var/opt/gitlab   #与上面一样
--privileged=true         #让容器获取宿主机root权限
gitlab/gitlab-ce    #镜像的名称,这里也可以写镜像ID

查看容器运行 

docker ps

至此,docker 容器启动成功。

三、GitLab配置

进入容器

docker exec -it gitlab-20080 bash

记录root初始密码

# 记录初始密码
cat /etc/gitlab/initial_root_password

修改gitlab.rb文件

# 详见文档 https://docs.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server
vi /etc/gitlab/gitlab.rb
# 服务地址,可以是域名 如果默认http不用80端口,在ip后加上端口即可
external_url 'http://192.168.1.111:20080'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'http://192.168.1.111'
# 此端口是run时22端口映射的20022端口
gitlab_rails['gitlab_shell_ssh_port'] = 20022

刷新配置

gitlab-ctl reconfigure

配置gitlab.yml文件

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
    # 修改host 与上面.rb文件修改的一致,修改port 为8090
    host: 192.168.1.111
    port: 20080
    https: false

重启服务

gitlab-ctl restart

本地测试服务

等个两分钟(看机器配置,配置低的启动慢),执行如下命令

curl http://127.0.0.1:20080/

出现如下结果,则代表服务启动完成。

浏览器测试服务

url : http://ip:端口/

修改Root密码
如果忘记root密码时可以修改
 

# 进入容器内部
docker exec -it gitlab /bin/bash

# 进入控制台
gitlab-rails console -e production

# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为lqz123456
user.password='lqz123456'
# 保存
user.save!
# 退出
exit

四、常用命令

# 容器外停止
docker stop gitlab-20080  
# 容器外重启
docker restart gitlab-20080
# 进入容器命令行
docker exec -it gitlab-20080 bash
# 容器日志
docker logs -f gitlab-20080
# 容器中应用配置,让修改后的配置生效
gitlab-ctl reconfigure
# 容器中重启服务
gitlab-ctl restart
# 查看gitlab运行状态
gitlab-ctl status
#停止gitlab服务
gitlab-ctl stop
# 查看gitlab运行日志
gitlab-ctl tail
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki


http://www.niftyadmin.cn/n/5845627.html

相关文章

uniapp mqttjs 小程序开发

在UniApp中集成MQTT.js开发微信小程序时,需注意平台差异、协议兼容性及消息处理等问题。以下是关键步骤与注意事项的综合指南: 一、环境配置与依赖安装 安装MQTT.js 推荐使用兼容性较好的版本:mqtt4.1.0(H5和小程序兼容性最佳&…

Spring 6.2.2 @scope(“prototype“)原理

Spring Prototype 原理? 前置准备 创建一个MyService类 Scope("prototype") Service("myService") public class MyService {public String getMessage() {return "Hello, World!";} }创建一个main类,用于debug。 pr…

超越传统IDE:Cursor智能编码介绍

超越传统IDE:Cursor智能编码介绍 为什么选择Cursor常用快捷键常用设置汉化设置隐私设置模型选择添加大模型Rules for AI(AI生成规则)Python执行环境安装扩展切换python版本 添加Docs文档 使用技巧Chat模式与COMPOSER模式Chat 模式提交按钮COM…

攻防世界 文件上传

题目名称-文件包含 今天的题大概提一下解题思路就好了 这里要使用php://filter 在此基础上因为网页过滤了一些关键字 我们要进行爆破 UCS-4* UCS-4BE UCS-4LE* UCS-2 UCS-2BE UCS-2LE UTF-32* UTF-32BE* UTF-32LE* UTF-16* UTF-16BE* UTF-16LE* UTF-7 UTF7-IMAP UTF-8* ASCII…

node.js + html + Sealos容器云 搭建简易多人实时聊天室demo 带源码

node.js html Sealos容器云 搭建简易多人实时聊天室demo 带源码 前言功能介绍(demo演示)sealos官网配置node.js 编写服务端代码前端ui 调用接口整体项目目录部署到服务器 前言 hello哦盆友们,这次我们来十几行代码做一个超简单的多人聊天…

zzcms接口index.php id参数存在SQL注入漏洞

zzcms接口index.php id参数存在SQL注入漏洞 漏洞描述 ZZCMS 2023中发现了一个严重漏洞。该漏洞影响了文件/index.php中的某些未知功能,操纵参数id会导致SQL注入,攻击可能是远程发起的,该漏洞已被公开披露并可被利用。攻击者可通过sql盲注等手段,获取数据库信息。 威胁等级:…

AWK系统学习指南:从文本处理到数据分析的终极武器 介绍

目录 一、AWK核心设计哲学解析 1.1 记录与字段的原子模型 1.2 模式-动作范式 二、AWK编程语言深度解析 2.1 控制结构 说明: 2.2 关联数组 代码说明: 示例输入和输出: 注意事项: 2.3 内置函数库 三、高级应用技巧 3.1…

Delphi语言的云计算

Delphi语言的云计算应用探索 引言 随着信息技术的迅猛发展,云计算已经成为现代计算机科学中一个不可或缺的重要组成部分。云计算不仅改变了企业的IT基础设施部署方式,还开启了新一轮的经济发展模式。开发者们也在积极寻找合适的编程语言,以…