gitlabdocker(gitlabdocker安装)

http://www.itjxue.com  2023-03-18 01:51  来源:未知  点击次数: 

使用Docker部署GitLab

查看是否拉取成功

编写内容

在该文件目录下,授予 gitlab_start.sh 执行权限

要注意端口是否被占用

修改 gitlab_start.sh 文件,将映射到宿主机的端口改为 8088 ,或者其它没被占用的端口

重新运行 ./gitlab_start.sh 文件,报错如下

这是因为之前的容器虽然没有运行起来,但是已经创建了,把它删除掉

重新运行 gitlab_start.sh 文件

可以看到容器成功启动

创建 docker-compose.yml 文件,并在该文件所在的文件夹目录下运行 docker-compose up -d

需要事先安装 docker-compose

安装docker-compose

注 :端口和映射目录可根据需要修改

若开放访问端口为 80 , external_url 可不加端口号,默认80

若以 3.1 方法创建,需要修改相关配置文件

在Gitlab容器 运行状态 时,重启服务,并远程访问网站测试

*若访问Gitlab出现502等错误,使用命令检查错误原因

e.g.

查看上述配置文件,查找错误原因

[图片上传失败...(image-e9789-1636370071222)]

虽然容器启动成功,但是却没办法根据 ip:port 访问gitlab

拉取tomcat镜像

为了测试8088端口是否可用,先把gitlab的容器暂停

启动tomcat容器,并将tomcat容器的8080端口映射到宿主机的8088端口

一切正常,访问ip:8088,还是和以前一样访问不了

因为之前系统的防火墙一直是关闭的并且其它的服务能正常访问,所以没有怀疑是防火墙的问题

把防火墙打开

访问之前能正常访问的服务,果然没法正常访问。

把该服务的端口开发,正常访问。

打开8088端口

再次访问

返回tomcat的404页面: HTTP Status 404 – Not Found

虽然是404页面,但是说明此时的端口是能正常访问的

把tomcat的容器停止运行,重新运行gitlab容器

虽然没启动成功,但离成功更进一步了:)

尝试把这个容器删除掉,再创建一次后还是得到这个错误。

还是访问不了,检查一下GitLab内部是否有问题

一切正常

我再次换成tomcat容器进行测试,发现8088端口访问不了了。

但是在宿主机内ping本机是可以的

但是,换成 ip:8088 则不行

根据以上两篇文章,提出 阿里云的内网eth0 网段正好跟Docker 的虚拟网卡都是 172 网段,有冲突

观察发现我使用的云服务器也是阿里云,并且通过 ifconfig 查看

并且查看阿里云的内网ip确实也是 172 开头。

编辑配置文件 /etc/docker/daemon.json ,若 daemon.json 文件不存在新建即可。

重新启动docker服务

可以看到docker0 的地址变了。

但是要注意,使用 docker 启动的服务会默认使用 docker0 ,如果是用 docker-compose 启动的服务则不会。上面的 br-12aa369ee4a6 对应的是docker-compose启动的服务,可以看到还是172的网段。

docker-compose up使用自定义的网段的两种方式(从其根源指定)

根据该文使用方法2,即修改 daemon.json 。但并不能成功访问,我的环境是: docker:20.10.7 , docker-compose:1.24.1

后面发现访问不成功的原因在于 docker 与防火墙之间的关系,可以关掉防火墙,开启 docker ,不能访问则打开防火墙。在它们之间来回试探 = =。

后面尝试过关闭 firewalld ,打开 iptables 。

在启用 iptables 时,一般关掉 iptables 可以正常访问,打开则不能正常访问。

在启用 firewalld 时,按照 docker 和 firewalld 之间启动关闭的顺序不同,有时是开着防火墙能访问,有时是关了防火墙能访问。

但是容器内不能访问外部网络,该问题现在还未解决。 有一种迂回的解决方法就是容器使用 host 网络模式

问题 :怀疑是docker,firewalld与iptables之间的设置问题

Docker与IPtables

docker 端口映射 及外部无法访问问题

Docker and IPtables

还有一种访问不了GitLab的情况是端口映射和配置文件有误。

快速的解决方法:将宿主机端口号和容器号设置相同,可参考下面的博客。

利用GitLab Docker images安装GitLab(填坑)

[图片上传失败...(image-457ad3-1636370071221)]

如果系统环境正常,安装会十分顺利,一般不会有奇怪的问题。

我在不同的服务器安装过

阿里云 CentOS 7.6 : 访问正常,但是因内存不够出现502错误,容器内可正常连接外部网络

阿里云 Alibaba Cloud Linux 2 : 可能不能正常访问容器,容器内不能正常连接外部网络。怀疑是防火墙与docker的问题。

修改密码:

dockergitlab服务器挂了

dockergitlab服务器挂了准确来说应该是今天升级了阿里云的ECS内存之后重启实例,结果发现所有跟docker相关的东西都坏掉了。docker启动不了,所有镜像都查不到。我们的gitlab是用的docker,所以必须要把这个给弄好。

查看docker相关的文件和镜像容器都在,所以猜测数据可能没受到损坏。具体修复过程分为以下几个阶段:

1、这是由于重启了服务器造成的,所以有可能再重启一次情况会回复,但是重启后结果还是不行。

2、启动docker 的时候执行service docker start指令,显示数据如下图:

docker start/running,process 。这条指令并没有说明docker已经运行,因为我查询所有进程的时候根本没有docker,具体原因可以百度下。

3、找大神帮忙,加入了几个docker群,其中在docker分享群2中几位大神纷纷出来指点。

其中一位说service 只是相当于一个快捷方式,这样启动不了就去docker下直接手动启动。可是我找了半天没找到在哪启动。第二位朋友说dockerd指令,这个是手动启动docker的,可是执行后还是不行,(./dockerd也失败)

提示信息里说可能没有安装docker。可是我重启服务器之前运行了将近半年都是OK的,但是我不排除重启后docker完全损坏,不被识别的可能。

使用uname -a查看内核版本,看看是不是不支持docker。按照他的解释是,他之前遇到过,重启服务器之后内核更新了,导致不支持docker.所以这也是一种可能。

查看docker版本:

我这里是1.6.2的客户端,

linux内核3.13

确认了我的服务器内核是支持docker的,所以把这个可能排除。

其中杭州的以为朋友注意到,我上边的错误提示里有一句缺少docker.sock文件。所以建议我在相应的目录下简历docker.sock。上边提示信息的完整路径是/var/run/docker.sock。

按照上边说的建立后,再执行出现以下信息:

这时候注意后边那条提示,shutting down.....,看到这之后大神给出一条指令sudo apt-get install apparmor,说执行完之后就没问题了。

执行完之后果断docker可以起来了

?

在top中查询:

?

消失已久的docker终于出来了,而且docker下以前建立的容器都还在,手动起一下就好。

感谢各位大神的帮助,我的docker又复活了。总之不熟悉这个的朋友最好还是慎用,或者有人指点也好,省的不知道出问题之后该找谁。

docker快速部署gitlab代码仓库

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用 Ruby语言 写成。后来,一部分用 Go语言 重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。

Git、Github、Gitlab的区别:

? Git

一种代码版本管理系统,可以理解为标准或者统称。

? Github

产品名称,基于git开发的代码管理系统,必须公开于互联网上的公共仓库,安全较低,私有项目需要另外付费。

? Gitlab

产品名称,基于git开发的私有代码管理系统,开源免费、可自行管理的私有仓库,安全较高。

? 其它Git

msysGit、 Gitee(码云)、Gitea、 Gogs、 GitBucket类似于Github、Gitlab

下面我们介绍如何用docker快速部署一套功能强大的gitlab-ce社区版代码仓库。

第一步、centos 7.6安装、配置IP、dns、网关等(略)

第二步、安装docker安装,参考作者前几天的文章《centos 7下安装docker》

第三步、安装docker-compose,参考作者前几天的文章《使用docker-compose运行docker容器》

第四步、下载gitlab-ce 13.12.10官方镜像

docker pull gitlab/gitlab-ce:13.12.10-ce.0

第五步、建立相关目录结构,配置目录权限

mkdir -p /data/gitlab/config

mkdir -p /data/gitlab/data

mkdir -p /data/gitlab/logs

第六步、建立docker-compose.yml

cd /data/gitlab vi docker-compose.yml

docker-compose.yml具体配置和说明放本文章后面。

第七步、使用dc up -d起动容器

cd /data/gitlab dc up -d

等待几分钟后服务初始化完成,使用宿主机IP在浏览器上进入gitlab,配置root管理员的密码。一套功能强大的gitlab代码仓库搭建完成,关于gitlab的具使用,后面会推出相关视频/文章说明。

附:docker-compose.yml

version: '3.6' #配置编排的版本

services:

gitlab:

image: gitlab/gitlab-ce:13.12.10-ce.0

TZ: 'Asia/Shanghai' #配置容器时区,不会有8小时差异

GITLAB_OMNIBUS_CONFIG: |

external_url '' #服务器访问地址,也可以是域名

gitlab_rails['time_zone'] = 'Asia/Shanghai' #配置gitlab服务的时区

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" #管理员邮箱smtp地址

gitlab_rails['smtp_port'] = 465 #管理员邮箱服务器端口

gitlab_rails['smtp_user_name'] = "chenyk@xxxxxx.com" #管理员邮箱地址

gitlab_rails['smtp_password'] = "ZSfS11AssBXX" #管理员邮箱密码,配置后才可以给用户发邮件等信息

gitlab_rails['smtp_domain'] = "xxxxxx.com" #管理员邮箱域名

gitlab_rails['smtp_authentication'] = "login" #管理员邮箱的验证方式为login

gitlab_rails['smtp_enable_starttls_auto'] = true #使用安全加密方式登陆管理员邮箱

gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_from'] = 'chenyk@xxxxxx.com' #管理员邮箱账号

gitlab_rails['gitlab_shell_ssh_port'] = 22

ports: #放开gitlab 80端口,后面我们用80端口访问gitlab

- '80:80'

volumes: #挂载配置、数据持久化、日志目录

- ./config:/etc/gitlab

- ./data:/var/opt/gitlab

- ./logs:/var/log/gitlab

(责任编辑:IT教学网)

更多