使用docker搭建GitLab个人开发项目私服

一、安装docker

1.更新系统

dnf update

# 最后出现这个标识就说明更新系统成功
Complete!

2.添加docker源

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

# 最后出现这个标识就说明添加成功
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

3.安装docker,并允许卸载已经安装的软件(建议不加,避免出现卸载其他软件所需的依赖,而导致其他软件使用异常)

yum install -y docker-ce --allowerasing

# 最后出现这个标识就说明安装成功
Complete!

4.启动 Docker

systemctl start docker

5.查看 Docker 启动状态

systemctl status docker
active说明docker已经启动。

● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: active (running) since Sun 2024-04-21 06:37:45 EDT; 51s agoDocs: https://docs.docker.comMain PID: 88635 (dockerd)Tasks: 9Memory: 34.3MCGroup: /system.slice/docker.service└─88635 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockApr 21 06:37:45 node-05 systemd[1]: Starting Docker Application Container Engine...
Apr 21 06:37:45 node-05 dockerd[88635]: time="2024-04-21T06:37:45.248538814-04:00" level=info msg="Starting up"
Apr 21 06:37:45 node-05 dockerd[88635]: time="2024-04-21T06:37:45.306599084-04:00" level=info msg="Loading containers: start."
Apr 21 06:37:45 node-05 dockerd[88635]: time="2024-04-21T06:37:45.753676236-04:00" level=info msg="Loading containers: done."

6.设置 Docker 开机自启

systemctl enable docker

二、安装GitLab

1.查找GitLab

docker search gitlab

2.拉取gitlab镜像

docker pull gitlab/gitlab-ce:latest
如果查找的镜像没有自己想要的,直接使用拉取gitlab/gitlab-ce:latest这个官方最新镜像。

# 看到一下信息,说明镜像拉取成功,也可以通过docker images查看拉取的镜像,如果能看到gitlab/gitlab-ce镜像,说明拉取成功
latest: Pulling from gitlab/gitlab-ce
7021d1b70935: Pull complete 
84ce88366b95: Pull complete 
e1c92fb77de1: Pull complete 
719e91a15767: Pull complete 
d680b9b016aa: Pull complete 
f0027cb8bf12: Pull complete 
8090ecb94c61: Pull complete 
2d67bfd969b5: Pull complete 
216d686bfe05: Pull complete 
Digest: sha256:7c1182ba8d3f30fb82a4c1d2fcc4da35e23929775564642a2310941bc92de1a7
Status: Downloaded newer image for gitlab/gitlab-ce:latest
docker.io/gitlab/gitlab-ce:latest

3.启动gitlab

注意先使用一下命令创建挂载卷目录:mkdir -p ./software/gitlab/{logs,data,config},这样就可以不用进入容易查看gitlab的一些目录。

docker run -d \
--hostname gitlab.orkasgb.com \
-p 8443:443 -p 8090:80 -p 8022:22 \
--restart always --name gitlab \
-v /orkasgb/software/gitlab/config:/etc/gitlab \
-v /orkasgb/software/gitlab/log:/var/log/gitlab \
-v /orkasgb/software/gitlab/data:/var/opt/gitlab \
--privileged=true gitlab/gitlab-ce \
参数解释:
-d #后台运行,全称:detach
-p 8443:443 #将容器内部端口向外映射,全称:publish
-p 8090:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口,全称:publish
-p 8022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口,全称:publish
–restart always #容器自启动
–name gitlab #设置容器名称为gitlab
-v /orkasgb/software/gitlab/config:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /orkasgb/software/gitlab/log:/var/log/gitlab #与上面一样
-v /orkasgb/software/gitlab/data:/var/opt/gitlab #与上面一样
–privileged=true #让容器获取宿主机root权限
gitlab/gitlab-ce #镜像的名称,这里也可以写镜像ID

4.查看启动日志

docker logs gitlab

  - acme (4.1.6)
# 如果没有明显错误,说明启动正常
Installing cookbook gem dependencies:
Compiling cookbooks...
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:2: warning: already initialized constant SELinuxDistroHelper::REDHAT_RELEASE_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:2: warning: previous definition of REDHAT_RELEASE_FILE was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:3: warning: already initialized constant SELinuxDistroHelper::OS_RELEASE_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:3: warning: previous definition of OS_RELEASE_FILE was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:4: warning: already initialized constant SecretsHelper::SECRETS_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/secrets_helper.rb:4: warning: previous definition of SECRETS_FILE was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:5: warning: already initialized constant SecretsHelper::SECRETS_FILE_CHEF_ATTR
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/secrets_helper.rb:5: warning: previous definition of SECRETS_FILE_CHEF_ATTR was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:6: warning: already initialized constant SecretsHelper::SKIP_GENERATE_SECRETS_CHEF_ATTR
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/secrets_helper.rb:6: warning: previous definition of SKIP_GENERATE_SECRETS_CHEF_ATTR was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/gitlab_cluster.rb:16: warning: already initialized constant GitlabCluster::CONFIG_PATH
/opt/gitlab/embedded/cookbooks/package/libraries/gitlab_cluster.rb:16: warning: previous definition of CONFIG_PATH was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/gitlab_cluster.rb:17: warning: already initialized constant GitlabCluster::JSON_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/gitlab_cluster.rb:17: warning: previous definition of JSON_FILE was here
Loading Cinc Auditor profile files:
Loading Cinc Auditor input files:
Loading Cinc Auditor waiver files:
[2024-04-21T11:29:49+00:00] INFO: Generating default secrets

10.进入到gitlab容器进行基础信息配置

docker exec -it gitlab bash

10.1 编辑gitlab.rb

cd /etc/gitlab
vi ./gitlab.rb

  • 修改external_url为node-05
  • 修改gitlab_rails['gitlab_ssh_host']为node-05
  • 修改gitlab_rails['gitlab_shell_ssh_port']为8022

10.2 编辑gitlab.yml

cd /opt/gitlab/embedded/service/gitlab-rails/config
vim gitlab.yml

  • 修改port为8022
  • 修改url为node-05

10.3.重置账户密码信息,在容器内部,使用gitlab-rails console -e production重置密码。

  • 链接数据库:gitlab-rails console -e production
  • 获取用户:user = User.where(id:1).first
  • 修改用户账号:user.username = 'gitlab'
  • 修改用户密码:user.password = 'gitlab123'
  • 保存用户:user.save!

11.保存配置后,重启

重启配置:gitlab-ctl reconfigure或者直接重启gitlab:gitlab-ctl restart gitlab

12.重启后,就可以使用http://ip:8090访问gitlab,账户为gitlab

13.点击登录用户的头像,设置为中文界面,在配置gitlab界面,启用允许从其他项目导入功能。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/637892.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React【Day4下+5】

环境搭建 使用CRA创建项目,并安装必要依赖,包括下列基础包 Redux状态管理 - reduxjs/toolkit 、 react-redux路由 - react-router-dom时间处理 - dayjsclass类名处理 - classnames移动端组件库 - antd-mobile请求插件 - axios pnpm i reduxjs/toolkit r…

华为开源自研AI框架昇思MindSpore应用案例:数据处理性能优化

如果你对MindSpore感兴趣,可以关注昇思MindSpore社区 数据是整个深度学习中最重要的一环,因为数据的好坏决定了最终结果的上限,模型的好坏只是去无限逼近这个上限,所以高质量的数据输入,会在整个深度神经网络中起到积极…

内存管理下及模板初阶

嗨喽,今天阿鑫给大家带来内存管理下以及模板初阶的博客,下面让我们开始今天的学习吧! 内存管理下及模板初阶 new和delete的实现原理定位new表达式(placement-new)常见面试题泛型编程函数模板类模板 1. new和delete的实现原理 1.1 内置类型…

知道做到 一篇总结学习方法的笔记

元数据 [!abstract] 知道做到:跃迁式学习 书名: 知道做到:跃迁式学习作者: 彼得•霍林斯简介: 学习是改善你的生活环境、成为你想成为的人的关键。科学的方法能加速学习进程,让你事半功倍。技能、信息和能力…

SpringBoot 操作 Redis

导入对应版本的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>修改配置文件中的信息 spring:redis:host: 127.0.0.1port: 8888注意: 我这里 xsh…

SpringAOP从入门到源码分析大全(三)ProxyFactory源码分析

文章目录 系列文档索引五、ProxyFactory源码分析1、案例2、认识TargetSource&#xff08;1&#xff09;何时用到TargetSource&#xff08;2&#xff09;Lazy的原理&#xff08;3&#xff09;应用TargetSource 3、ProxyFactory选择cglib或jdk动态代理原理4、jdk代理获取代理方法…

数码摄影色彩构成,数码相机色彩管理

一、资料描述 本套摄影色彩资料&#xff0c;大小58.54M&#xff0c;共有6个文件。 二、资料目录 《抽象彩色摄影集》.阿瑟.pdf 《色彩构成》.pdf 《色彩学》.星云.扫描版.pdf 《摄影色彩构成》.pdf 《数码相机色彩管理》.pdf 数码摄影进阶之4《色彩篇》.pdf 三、资料下…

随心玩玩(十五)LLM 浅玩一下RWKV模型

写在前面&#xff1a;无聊又来玩玩LLM了&#xff0c;这次玩玩RWKV&#xff0c;因为我看到hugging face上有个roleplay的模型&#xff0c;遂心动。 【烧显存注意&#xff01;】需要16G显存的样子 介绍 &#xff08;随便cv的&#xff0c;见谅&#xff0c;有空单独写一篇博客看看…

Matlab新手快速上手2(粒子群算法)

本文根据一个较为简单的粒子群算法框架详细分析粒子群算法的实现过程&#xff0c;对matlab新手友好&#xff0c;源码在文末给出。 粒子群算法简介 粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种群体智能优化算法&#xff0c;灵感来源于…

websocket 请求头报错 Provisional headers are shown 的解决方法

今日简单总结 websocket 使用过程中遇到的问题&#xff0c;主要从以下三个方面来分享&#xff1a; 1、前端部分 websocket 代码 2、使用 koa.js 实现后端 websocket 服务搭建 3、和后端 java Netty 库对接时遇到连接失败问题 一、前端部分 websocket 代码 <template>…

社会工程渗透测试教程(四)

原文&#xff1a;annas-archive.org/md5/db987a87e1478b8a8617c263c631b477 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十三章&#xff1a;撰写报告 安德鲁梅森&#xff0c;技术总监&#xff0c;RandomStorm 有限公司 本章将介绍向客户提供的主要成果&#xf…

嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载&#xff1a; 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;4e33 3.1 ESP-IDF 简介 ESP-IDF&#xff08;Espressif IoT Development Framework&#xff09;是乐鑫&#xff08;Espressif Systems&#xff09;为 ESP 系列…