gitlab 拉取代码怎样设置不要密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab 拉取代码怎样设置不要密码相关的知识,希望对你有一定的参考价值。

因为在使用repogit下载代码时需要使用ssh方式,目前下载代码的方式不支持密码方式,仅支持ssh-key的方式,那么需要下载代码的用户请根据以下方法在本地生成ssh-key,然后将对应的证书文件发送给版主或者管理员,当获取下载代码权限后可以直接下载;访问权限的设定,新的git库采用证书认证的方式,请在你们的本机上执行:#ssh-keygen根据提示输入信息后会在~/.ssh目录下生成id_rsa.pub文件和id_rsa文件。请将id_rsa.pub文件发给我(版主)。然后在使用ssh的时候使用id_rsa证书。linux和MacOS使用ssh登录时会自动提供生成的ssh证书。windows上可以考虑使用xshell或者putty创建证书。目前没有提供密码登录。 参考技术A 生成ssh秘钥,然后复制到你的gitlab页面上存入你的ssh秘钥,然后就可以操作属于你的代码而不需要输密码了,clone时要输入ssh地址,

使用gitlab+jenkins+nexus拉取springcloud并根据不同模块构建docker镜像,并推送到nexus里的docker仓库

1.安装gitlab
详情看:https://www.cnblogs.com/sanduzxcvbnm/p/13023373.html
安装好gitlab后,然后创建一个普通用户,编辑用户,给用户设置密码,添加本机ssh密钥到gitlab里,使用普通用户上传代码

要使用git开头的地址,不使用http开头的地址

可以先把原有的远程仓库名称修改成old_origin,然后添加这个新的远程仓库

2.安装jenkins
详情看:https://www.cnblogs.com/sanduzxcvbnm/p/11341622.html
修改清华大学jenkis地址,更新到最新版本,安装一些插件:docker,gitlab,maven相关的
清华大学jenkis地址,插件管理-高级
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

3.安装nexus
详情看:
(1)安装:https://www.cnblogs.com/sanduzxcvbnm/p/13098712.html
(2)配置docker镜像仓库:https://www.cnblogs.com/sanduzxcvbnm/p/13099635.html

4.配置jenkins

(1)新建item
输入名称,选择第一个选项:自由风格,提交
(2)配置

(3)配置gitlab拉取代码

(4)配置maven编译打包

(5)配置docker
docker开启远程访问:

# vim /lib/systemd/system/docker.service
# 在ExecStar开头的这一行中添加上 -H tcp://0.0.0.0:2375

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
或者是:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

systemctl daemon-reload
systemctl restart docker

jenkins->配置->cloud

(6)项目结构

(7)springcloud项目修改
在模块的根目录下创建一个Dockerfile文件,并且复制粘贴上启动用的shell脚本(可以使用原来的,不过需要修改,去掉开头的nohup,java命令使用相对路径和最后的&)

不过这样会有个问题,生成的日志是在容器中,只能登陆到容器中才能查看日志,无法通过使用命令docker logs 进行查看
docker logs只能记录输出到终端的内容(stdout或者stderr),输出到文件的无法显示

(8)把容器中生成的日志文件挂载到宿主机上,方便统一管理
这里采用的是挂载数据卷的方式,不能采用挂载宿主机目录的方式(会报要执行的shell脚本文件找不到的错误)

# 挂在宿主机目录的方式,---不可行-----
[root@worker ~]# docker run -d -p 8761:8761 -v /var/log/eureka:/opt/hkd-cloud/hkd-eureka idocker.io/hkd-eureka:1.1
b2ccb868d4a8abc02999a0cdcec42268ab353fd8d8a0ae4b577ebf05795e1a41
[root@worker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@worker ~]# docker logs -f b2ccb868d4a8abc02999a0cdcec42268ab353fd8d8a0ae4b577ebf05795e1a41
/bin/sh: can\'t open \'hkd-eureka.sh\': No such file or directory
[root@worker ~]# docker volume create my-vol # 创建数据卷,默认路径:/var/lib/docker/volumes
[root@worker ~]# docker run -d -p 8761:8761 --mount source=my-vol,target=/opt/hkd-cloud/hkd-eureka idocker.io/hkd-eureka:1.1 # 可以挂载成只读的文件,ro
d113c6d2db8ef5622e67cc612f2b106cfd3c9f050e83f935e35d4910f3d9c46b
[root@worker ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                    NAMES
d113c6d2db8e        idocker.io/hkd-eureka:1.1   "/bin/sh hkd-eureka.…"   4 seconds ago       Up 3 seconds        0.0.0.0:8761->8761/tcp   charming_lamarr
[root@worker volumes]# pwd
/var/lib/docker/volumes
[root@worker volumes]# cd my-vol/
[root@worker my-vol]# ls
_data
[root@worker my-vol]# cd _data/
[root@worker _data]# ls
hkd-eureka-1.0.jar  hkd-eureka.out  hkd-eureka.sh

思考:
可以这样处理:Dockerfile文件中VOLUME挂载到logs目录,同时shell脚本中输出日志到这个logs目录中,运行容器挂载的时候这个目录采用只读的方式

docker run -d -p 8761:8761 -v my-vol:/opt/hkd-cloud/hkd-eureka/logs idocker.io/hkd-eureka:1.1

这样一来,既能实现共享容器中的日志到宿主机,也增加了安全性

以上是关于gitlab 拉取代码怎样设置不要密码的主要内容,如果未能解决你的问题,请参考以下文章

idea拉完代码发现代码和本地不一致

安装git后如何设置用户信息

使用gitlab+jenkins+nexus拉取springcloud并根据不同模块构建docker镜像,并推送到nexus里的docker仓库

gitlab授权其他用户拉代码

使用git在gitlab上拉取代码的方法

如何禁止GitLab分支被push