首页 > 其他分享 >Docker部署GitLab-2024

Docker部署GitLab-2024

时间:2024-03-12 12:23:42浏览次数:29  
标签:git carlzeng top GitLab 2024 gitlab https Docker root

搭建公司/个人私有化的Gitlab/Github代码版本管理平台

文章耗时:5天(终于全流程走通),相关的应用或问题将持续更新。

怎么用

  • 条件:个人域名,公网IP的小主机或服务器(或购得的VPS或网络服务器)
  • 根据‘实现方法’中的步骤用docker搭建好gitlab平台
  • IDE或者命令行,或WEB UI,访问gitlab代码版本管理/控制等功能

相关内容

<iframe frameborder="0" height="500" scrolling="auto" src="https://query.carlzeng.top:3/appsearch?q=gitlab" style="box-shadow: 0 0 20px -10px" width="100%"></iframe>

实现方法

Docker命令搭建

docker pull gitlab/gitlab-ce:latest
#实践过程中,这个下载过程需要持续好长时间,所以还单独使用docker pull
e05b9f286a50: Downloading [=====>                                             ]  148.6MB/1.364GB
version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    #hostname: 'HOSTNAME'
    #environment:
    #  GITLAB_OMNIBUS_CONFIG:
        # Add any other gitlab.rb configuration here, each on its own line
    #    external_url 'https://gitlab.carlzeng.top:3'
    ports:
      - '8097:80'	 #根据自身端口情况调整
      - '4431:443' #根据自身端口情况调整
      - '2222:22'	 #根据自身端口情况调整
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
    shm_size: '256m'

这个docker-compose.yml文件,然后docker-compose up -d,在我的环境就能正常启动。

通过注释掉了environment 和 hostname的section以后可以正常启动,然后再耐心等待3-4分钟以后(不行就关闭重启来),启动成功

然后登录界面需要用户名和密码

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

这个命令可以获取初始化root用户的密码。或者使用config映射出来的目录,直接查看这个文件。

image-20240308105655373

配置连接Gitlab端口(非标准443端口)

git remote 非标准端口

测试使用IntelliJ IDEA来提交project到https://gitlab.carlzeng.top:3/

https://gitlab.carlzeng.top:3/root/proxypool.git

配置remote提示错误:unable to access 'https://gitlab.carlzeng.top:3/root/proxypool':LibreSSL SSL_connect: Connection reset by peer in connection to gitlab.carlzeng.top:443

解决办法(以问题中的特定例子来举例说明):

  1. cd 到相应目录,执行一下命令
  2. git remote set-url origin https://gitlab.carlzeng.top:3/root/proxypool.git
  3. 在IDE中push提示登录时,使用root用户登录即可

友情提示:

git remote add origin  https://gitlab.carlzeng.top:3/root/proxypool.git

这条命令也可以使用,用来添加多个git的源(这样push的时候,多个远程仓库都可以同时得到更新);需要在命令行下切换到项目的主目录下使用。

Access denied

08:32:02.142: [goProjects] git -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/master:master
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https://gitlab.carlzeng.top/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied
fatal: Authentication failed for 'https://gitlab.carlzeng.top:3/root/proxypool.git/'

解决办法:

用root用户登录即可

Email SMTP setup

vi /etc/gitlab/gitlab.rb

![image-20240308164451369](/Users/carlzeng/Library/Application Support/typora-user-images/image-20240308164451369.png)

![image-20240308165425674](/Users/carlzeng/Library/Application Support/typora-user-images/image-20240308165425674.png)

docker-compose down   
docker-compose up -d

现有项目同步至私有仓库

# 1. 添加新的project,在UI上操作
https://gitlab.carlzeng.top:3/root/pri-freight-container

# 2. 添加remote
git remote add origin_gitlab  https://gitlab.carlzeng.top:3/root/pri-freight-container.git

# 3. Push 更新至远程(本地部署的gitlab平台)
git push origin_gitlab
# 命令输出展示
Enumerating objects: 667, done.
Counting objects: 100% (667/667), done.
Delta compression using up to 8 threads
Compressing objects: 100% (550/550), done.
Writing objects: 100% (667/667), 334.70 KiB | 8.58 MiB/s, done.
Total 667 (delta 334), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (334/334), done.
To https://gitlab.carlzeng.top:3/root/pri-freight-container.git
 * [new branch]      working -> working
 
 

image-20240311181747412

灵感来源

Gitlab install | SMTP Mail configure and test on Linux | User create delete password change

Git中的ssh和https及相关问题

标签:git,carlzeng,top,GitLab,2024,gitlab,https,Docker,root
From: https://www.cnblogs.com/backuper/p/18068027

相关文章

  • 【2024面试刷题】二、Spring Cloud 面试题之Hystrix
    1、springcloud断路器的作用是什么?答:当一个服务调用另一个服务由于网络原因或自身原因出现问题时,调用者将等待被调用者的响应当更多的服务要求这些资源导致更多的请求等待时,就会出现连锁效应(雪崩效应)。断路器完全打开:一段时间内达到一定次数不能调用并且多次监测无恢复迹象......
  • Gitlab如何将多个项目移动到指定目录/群组?
    将您的个人项目移至群组本教程将向您展示如何将个人项目移动到群组中。为什么群组很重要?在极狐GitLab中,使用群组可以同时管理一个或多个相关项目。群组具有很多的好处。例如,您可以:管理您的项目的权限。查看群组中项目的所有议题和合并请求。查看您命名空间中的所有项目......
  • 2024.03.12
         第5天所花时间(包括上课)2h代码量(行)140行博客量(篇)1篇学习到的知识点页面的跳转,和注册页面,登录页面的构建       packagecom.example.myapplication1;importandroidx.appcompat.app.AppCompatActivity;importandroid.an......
  • docker镜像的操作
    一:镜像镜像是docker里面三个重要之一的东西,里面是创建容器的只读模版,就像是一个独立的软件包,就是运行某个程序必备的代码即可;传统的镜像就是包括了整个操作系统副本以及预安装的应用软件镜像的拉取:#默认是拉取最新的镜像[root@qcy/]#dockerpullubuntuUsingdefaulttag:......
  • 常用的Docker命令及其用途简述
    记录常用的Docker命令及其用途在日常的开发和运维工作中,Docker和docker-compose已经成为了不可或缺的工具。它们帮助我们轻松地构建、运行和管理容器化的应用程序。在这篇随笔中,我将记录下一些我常用的Docker和docker-compose命令,并简述它们的用途,并在每一个命令后面加上一条示例......
  • 【2024-03-11】提好车了
    20:00手把青秧插满田,低头便见水中天。心地清净方为道,退步原来是向前。                                                 ——《插秧偈》唐·布袋和尚昨天去提了车,整个......
  • 包含Maven和Docker的Dockerfile
    要创建一个包含Maven和Docker的Dockerfile,你需要首先明确你的需求。通常,这样的Dockerfile可能是为了构建并打包一个Java项目,然后使用Docker将其部署。以下是一个简单的示例,展示了如何创建一个Dockerfile,该Dockerfile安装了Maven和Docker,然后构建并推送一个Java项目:Dockerfile#......
  • day20240311周一python学习共100课
    day20240311周一python学习共100课。今天学到了第几课?听懂了吗?今天学10课。学3课,5课。买的好,买的少。父母家境好的家庭,会更轻松。------》第4课:编程语言就是把人的语言,转换成计算机机制能听得懂的语言(二进制语言)。1.写代码2.翻译代码到二进制。 跟着视频操作一遍就......
  • 2024.3.11 软工日报
    今天学习了安卓开发连接数据库的内容,学习时间2小时代码量150  packagecom.example.myapplication;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;publicclassmysqlhelp{publicstaticintgetUserSize(){......
  • Java2024-Day01回顾
    publicclassInfo{   publicstaticvoidmain(String[]args){System.out.println("这里是Java2024-Day01")}}1.基本数据类型介绍整数:byte-short-int(默认)-long浮点型:float-double(默认)  后面跟F或f字符型:char:①chara ='XXXX';②char......