共计 2410 个字符,预计需要花费 7 分钟才能阅读完成。
说明
用于代码托管在 gitlab,提交后通过 gitlab-runner 实现自动部署,基于 docker 运行代码
在宿主机安装
-
安装 Git
查看是否已经安装,建议版本安装 2.x,因为低版本会在 gitlab-runner 中报错# 查看安装的版本 git --version # 如果版本低于 2.x,则移除重新安装 yum remove git # 安装镜像源 yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm yum install git -y # 更新确保是新版本 yum update git # 查看安装的版本 git --version
-
安装 gitlab
gitlab-runner 不建议在 docker 运行,因为权限和一些不必要的内存限制使用问题,安装教程查看 Centos 7 安装 gitlab
-
安装 gitlab-runner
查看 Install GitLab Runner manually on GNU/Linux
-
安装 docker
查看 Linux Centos7.9 安装 docker
-
安装 docker-compose
查看 Linux Centos7.9 安装 docker-compose
配置 gitlab-runner 用户免密登录
-
切换至
gitlab-runner
用户su gitlab-runner cd ~
-
生成密钥
ssh-keygen -t rsa # 后面一直按回车即可
完成后会在
/home/gitlab-runner/.ssh
目录生成id_rsa 和 id_rsa.pub
两个文件 -
导入密钥 (这里的场景是 runner 和需要部署的服务器是同一台服务器, 如果不是同一台服务器, 将密钥导入到对应服务器)
# 回到 root 用户 exit # 导入 gitlab-runner 用户密钥 cat /home/gitlab-runner/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys # 重启 systemctl restart sshd
-
测试
su gitlab-runner ssh root@服务器 ip # 输入完成后回车, 会直接以 root 身份登录服务器
注册 runner
在如下位置获取项目的注册信息
然后执行下面的命令注册 runner
[root@localhost ~]# gitlab-ci-multi-runner register
Runtime platform arch=amd64 os=linux pid=4387 revision=98daeee0 version=14.7.0
Running in system-mode.
Enter the GitLab instance URL (for example, https://gitlab.com/):
输入注册地址
Enter the registration token:
输入注册令牌
Enter a description for the runner:
[localhost.localdomain]: 描述, 可以随便写
Enter tags for the runner (comma-separated):
标签 与 .gitlab-ci.yml 文件中的 tags 对应
Registering runner... succeeded runner=2aZHpdoN
Enter an executor: kubernetes, custom, ssh, virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, parallels, shell:
shell # 这里选择 shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
验证注册信息
[root@localhost ~]# gitlab-ci-multi-runner list
Runtime platform arch=amd64 os=linux pid=5062 revision=98daeee0 version=14.7.0
Listing configured runners ConfigFile=/etc/gitlab-runner/config.toml
node-build Executor=shell Token= 注册令牌 URL= 注册地址
在服务器上拉取项目
因是基于 http 拉起的项目, 需要先在服务器拉取项目, 以便保存 git 的账号和密码, 如果是使用的 ssh 方式拉取项目, 则可以不做此步骤, 在 gitlab 中配置服务器的部署密钥即可
# 配置 git 永久保存账号密码
git config --global credential.helper store
# 拉取代码
cd /home/project
git clone -b master 仓库地址
输入账号密码拉取代码
.gitlab-ci.yml” class=”reference-link” href=”#”> 编写 .gitlab-ci.yml
可以参考下面的配置
# usermod -aG docker gitlab-runner
stages:
- deploy
variables:
PROJECT_DIR: /home/project # 项目目录
PROJECT_SAAS_NAME: 项目名称 # 如 test
deploy_saas_test:
stage: deploy
before_script:
- git --version # 检测是否安装 git
- docker -v # 检测是否安装 docker
- docker-compose -v # 检测是否安装 docker-compose
script:
- ssh -tt root@172.18.26.69
标签:git
docker
gitlab
文章来源: gitlab+gitlab-runner 同步代码并使用 docker 执行