从0到1,Docker安装中文版Gitlab服务端
wptr33 2024-11-20 22:38 17 浏览
1.pull中文版镜像:
docker pull beginor/gitlab-ce:11.3.0-ce.0
2.创建目录:
通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
mkdir -p /mydata/gitlab/etc
mkdir -p /mydata/gitlab/log
mkdir -p /mydata/gitlab/data
3.修改目录权限:
chmod 777 /mydata/gitlab/etc
chmod 777 /mydata/gitlab/log
chmod 777 /mydata/gitlab/data
4.运行:
准备好这三个目录之后, 就可以开始运行 Docker 镜像了:
docker run --detach \
--publish 5443:443 \
--publish 82:82 \
--publish 2222:22 \
--name gitlab \
--volume /mydata/gitlab/etc:/etc/gitlab \
--volume /mydata/gitlab/logs:/var/log/gitlab \
--volume /mydata/gitlab/data:/var/opt/gitlab \
--privileged=true \
beginor/gitlab-ce:11.3.0-ce.0
--publish 5443:443:将http:443映射到外部端口5443
--publish 82:82:将web:82映射到外部端口82
--publish 2222:22:将ssh:22映射到外部端口2222
--name gitlab 运行容器名
--restart unless-stopped 重启策略
--volume /mydata/gitlab/etc:/etc/gitlab 挂载目录,配置文件目录
--volume /mydata/gitlab/log:/var/log/gitlab 挂载目录,日志目录
--volume /mydata/gitlab/data:/var/opt/gitlab 挂载目录,数据目录(可用于数据恢复)
--privileged=true 使得容器内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限
5. 配置gitlab服务器的访问地址
5.1、gitlab容器运行起来是没有问题的,但是当gitlab上创建项目的时候,生成项目的URL访问地址是容器的id(如上图)。作为gitlab服务器,当然是需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机上的路径为:/mydata/gitlab/etc/gitlab.rb)配置文件里面的参数。
vi /mydata/gitlab/etc/gitlab.rb
# 配置http协议所使用的访问地址,推荐配置成域名或不变的ip
external_url 'http://192.168.85.135:82'
# https需要下面这句
# nginx['redirect_http_to_https_port'] = 82
nginx['listen_port'] = 82
# 配置2222端口
gitlab_rails['gitlab_shell_ssh_port'] = 2222
首行加入即可:
保存退出后重启gitlab,再查看项目地址是否正确
docker restart gitlab
重启完成(可能需要30秒)后,可以看到地址已经变成ip+端口号了
如果地址未变,则可尝试执行5.2,5.3进行重启,再查看项目地址是否正确
5.2、进入gitlab容器初始化配置
docker exec -it gitlab /bin/bash 进去gitlab容器的命令
gitlab-ctl reconfigure 重置gitlab客户端的命令
备注:如上信息如果出现了,然后等了将近一分钟的话,恭喜你在docker安装Gitlab成功通过了
5.3、重启:gitlab-ctl restart
重启成功后发现原来的容器ID已经变成了IP地址
注:如果容器运行启动的不是80端口,则这里git地址要加上对应的端口。如上面启动的端口是82映射到82端口此时git地址应使用:git clone http://192.168.85.136:82/root/test.git
6.访问:
稍等片刻,初始化完毕,再打开浏览器:ip地址:端口号 (http://192.168.85.134:82/)
修改密码为:123456789,修改完成:使用 用户名root,密码为123456789进行登陆。
7.创建一个项目
gitlab页面
下面我们就可以新建一个项目了,点击 创建一个项目
创建完成后:
8、gitlab随 docker 自启动
docker update gitlab --restart=always
注意:这里的 gitlab 是容器的名字,不是镜像的名字。
在启动系统后你必须等待1-2分钟才能使用GitLab。GitLab需要一些时间来启动。
docker update gitlab --restart=no,可取消自动重启
9 启动|停止|重启
docker start gitlab
docker stop gitlab
docker restart gitlab
注意:这里的 gitlab 是容器的名字,不是镜像的名字。
10、进入gitlab (optional)
docker exec -it gitlab /bin/bash
按Ctrl+D或输入exit退出。
11、拉取代码
git http://user:pssword@url
git clone ssh://user:pssword@url
注意:如果项目权限是公开则不需要输入用户名密码,要时候用ssh方式获取代码需要
Gitlib添加ssh key之后,才能正常使用
TortoiseGit如何添加ssh key,百度就可以
12、初始化提交项目
新建一文件夹,然后执行如下命令
git clone http://192.168.85.135:82/xxxx.git
推送到master,输入对应用户名密码即可
相关推荐
- Python自动化脚本应用与示例(python办公自动化脚本)
-
Python是编写自动化脚本的绝佳选择,因其语法简洁、库丰富且跨平台兼容性强。以下是Python自动化脚本的常见应用场景及示例,帮助你快速上手:一、常见自动化场景文件与目录操作...
- Python文件操作常用库高级应用教程
-
本文是在前面《Python文件操作常用库使用教程》的基础上,进一步学习Python文件操作库的高级应用。一、高级文件系统监控1.1watchdog库-实时文件系统监控安装与基本使用:...
- Python办公自动化系列篇之六:文件系统与操作系统任务
-
作为高效办公自动化领域的主流编程语言,Python凭借其优雅的语法结构、完善的技术生态及成熟的第三方工具库集合,已成为企业数字化转型过程中提升运营效率的理想选择。该语言在结构化数据处理、自动化文档生成...
- 14《Python 办公自动化教程》os 模块操作文件与文件夹
-
在日常工作中,我们经常会和文件、文件夹打交道,比如将服务器上指定目录下文件进行归档,或将爬虫爬取的数据根据时间创建对应的文件夹/文件,如果这些还依靠手动来进行操作,无疑是费时费力的,这时候Pyt...
- python中os模块详解(python os.path模块)
-
os模块是Python标准库中的一个模块,它提供了与操作系统交互的方法。使用os模块可以方便地执行许多常见的系统任务,如文件和目录操作、进程管理、环境变量管理等。下面是os模块中一些常用的函数和方法:...
- 21-Python-文件操作(python文件的操作步骤)
-
在Python中,文件操作是非常重要的一部分,它允许我们读取、写入和修改文件。下面将详细讲解Python文件操作的各个方面,并给出相应的示例。1-打开文件...
- 轻松玩转Python文件操作:移动、删除
-
哈喽,大家好,我是木头左!Python文件操作基础在处理计算机文件时,经常需要执行如移动和删除等基本操作。Python提供了一些内置的库来帮助完成这些任务,其中最常用的就是os模块和shutil模块。...
- Python 初学者练习:删除文件和文件夹
-
在本教程中,你将学习如何在Python中删除文件和文件夹。使用os.remove()函数删除文件...
- 引人遐想,用 Python 获取你想要的“某个人”摄像头照片
-
仅用来学习,希望给你们有提供到学习上的作用。1.安装库需要安装python3.5以上版本,在官网下载即可。然后安装库opencv-python,安装方式为打开终端输入命令行。...
- Python如何使用临时文件和目录(python目录下文件)
-
在某些项目中,有时候会有大量的临时数据,比如各种日志,这时候我们要做数据分析,并把最后的结果储存起来,这些大量的临时数据如果常驻内存,将消耗大量内存资源,我们可以使用临时文件,存储这些临时数据。使用标...
- Linux 下海量文件删除方法效率对比,最慢的竟然是 rm
-
Linux下海量文件删除方法效率对比,本次参赛选手一共6位,分别是:rm、find、findwithdelete、rsync、Python、Perl.首先建立50万个文件$testfor...
- Python 开发工程师必会的 5 个系统命令操作库
-
当我们需要编写自动化脚本、部署工具、监控程序时,熟练操作系统命令几乎是必备技能。今天就来聊聊我在实际项目中高频使用的5个系统命令操作库,这些可都是能让你效率翻倍的"瑞士军刀"。一...
- Python常用文件操作库使用详解(python文件操作选项)
-
Python生态系统提供了丰富的文件操作库,可以处理各种复杂的文件操作需求。本教程将介绍Python中最常用的文件操作库及其实际应用。一、标准库核心模块1.1os模块-操作系统接口主要功能...
- 11. 文件与IO操作(文件io和网络io)
-
本章深入探讨Go语言文件处理与IO操作的核心技术,结合高性能实践与安全规范,提供企业级解决方案。11.1文件读写11.1.1基础操作...
- Python os模块的20个应用实例(python中 import os模块用法)
-
在Python中,...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
面试官:git pull是哪两个指令的组合?
-
git 执行pull错误如何撤销 git pull fail
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)