导航:首页 > 配服务器 > 阿里云服务器怎么配置git

阿里云服务器怎么配置git

发布时间:2025-05-07 19:33:47

Ⅰ Gitlab CICD实践(Docker+Jenkins+Nginx)

首先,准备一台服务器,这里使用的是阿里云的centos系统。

在服务器上安装git并配置密钥,连按enter键。

执行cd /root/.ssh、ls命令,可以看到生成了id_rsa(私钥)和id_rsa.pub(公钥)。

将公钥复制到gitlab的SSH Keys中,验证是否可以拉取gitlab上的代码。

如果可以正常拉取,则表示配置成功。

接下来,安装docker。具体安装教程请参考:CentOS Docker 安装。

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。它通过一个单独的文件来配置应用程序的服务,并定义这些服务之间的关系。使用Docker Compose可以轻松地在不同的环境中部署和管理复杂的多容器应用程序。

安装Nginx和Jenkins,并创建文件目录。

创建配置文件docker-compose.yml和nginx.conf。

开放阿里云端口:8080、8001、8002。

执行docker启动命令systemctl start docker。

进入到对应目录cd /docker/compose。

执行命令docker-compose up -d。

使用docker ps -a查看容器状态。

在浏览器中输入自己的服务器IP:8080,可以看到jenkins页面。

查看Jenkins密码,可以使用docker ps查看Jenkins的CONTAINER ID。

使用docker exec -it 48575ad62348 /bin/bash进入容器内。

使用cat /var/jenkins_home/secrets/initialAdminPassword查看Jenkins密码。

输入密码后进入主页,点击安装推荐的插件。

安装完成后设置用户名密码。

实例配置,保存,进入到Jenkins首页。

点击Manage Jenkins=>Plugins。

点击Installed plugins,搜索框输入local。

如果已经安装,执行重启:url输入http://ip:端口/restart,重启后面板变为中文。

搜索GitLab,Publish Over SSH,NodeJS,选中点击安装,安装完成后重启Jenkins。

配置Publish Over SSH连接远程服务器。

点击系统管理=>系统配置,找到Publish Over SSH,点击新增。

填写信息,点击高级,勾选use password,将服务器上的id_rsa(私钥)的内容填写在Key里面。

将服务器上的id_rsa.pub(公钥)内容放在同级目录authorized_keys文件下。

往下滑动,点击Test Configuration,显示success则测试成功。

配置NodeJS。

点击全局工具配置,找到NodeJS,点击新增NodeJS,选择node版本,保存。

添加凭据,方便后续使用。

输入gitlab用户名和密码,保存。

创建Job。

保存后点击立即构建,查看构建日志。

配置gitlab的webhooks。

上面的url填写Jenkins里面的url,还需要填写webhooks里面的Secret token,secret token需要在jenkins生成。

继续点击jenkins的高级按钮,往下滑,点击Generate生成secret token,填写到gitlab的secret token(上图所示),最后点击保存。

验证webhooks,返回200表示验证成功,打开Jenkins发现已新增一条记录。

服务器上也已经把源码同步过来了。

配置构建步骤。

选择之前配置的node版本,点击保存。

点击立即构建,系统会自动安装对应的nodejs版本。

增加shell命令。

点击立即构建,验证环境可用。

添加yarn包管理器。

点击立即构建,验证yarn是否成功安装。

安装依赖,打包yarn install,yarn build。

服务器也同步过来了dist和node_moles目录。

自动把打包产物部署到对应环境的目录。

把dist目录压缩成dist.tar压缩包。

通过SSH把dist.tar压缩包发送到服务器上。

保存后点击构建,运行成功。

可以看到服务器上已经有了dist目录。

访问ip:8001,可以正常展示页面。

流程:gitlab的dev分支提交代码后会触发webhooks,通知jenkins自动构建,jenkins会拉取gitlab的dev分支代码,执行yarn build打包成dist,之后把dist压缩成dist.tar,通过SSH把dist.tar包发送到dev环境的目录,并把dist.tar包解压成dist目录,实现dev环境更新。

生产环境的部署可以参照dev环境再配置一个。

Ⅱ 使用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的问题。

修改密码:

阅读全文

与阿里云服务器怎么配置git相关的资料

热点内容
算数游戏源码 浏览:998
压缩机工作声音判断 浏览:984
事业单位程序员 浏览:505
易语言取相似颜色源码 浏览:772
pyodbclinux 浏览:584
vivo为什么把服务器沉到深海 浏览:459
程序员能为电商做什么 浏览:400
腾讯直充qq号加密码 浏览:139
qt搭建msvc编译器环境 浏览:337
单片机晶振坏了会不会工作不稳定 浏览:769
天天影迷APP显示连接服务器失败怎么回事 浏览:960
钢铁命令同盟第七关怎么过 浏览:6
android底部控件弹出 浏览:42
为程序员而自豪 浏览:582
可以进行c语言编译的文件名 浏览:383
如何使用网络服务器运行程序 浏览:370
江西人社app什么时候开始年审 浏览:500
程序员浪漫求婚 浏览:955
什么是通知app 浏览:582
小米4文件夹怎么清理 浏览:150