gitlab持续集成部署(CI/CD),使用docker配置gitlab-runner

简介: gitlab持续集成部署(CI/CD),使用docker配置gitlab-runner 无互联网环境下,在外网docker pull [image],docker save [image] > [image].

gitlab持续集成部署(CI/CD),使用docker配置gitlab-runner

无互联网环境下,在外网docker pull [image],docker save [image] > [image].tar,在局域网下docker load < [image].tar
创建gitlab-runner容器:

sudo docker pull gitlab/gitlab-runner
sudo docker run -d --name gitlab-runner --restart always \
    -v /srv/gitlab-runner/config:/etc/gitlab-runner \
    -v /var/run/docker.sock:/var/run/docker.sock \
    gitlab/gitlab-runner:latest

将gitlab上的项目注册到gitlab-runner中:

sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register

输入上述命令后会有一系列的配置需要输入,当然也可以设置完后进行更改

按照提示输入即可,前两项可以在指定项目设置中CI/CD选项里的Runners settings选项中的Specific Runners里看到,tags是gitlab-ci.yml文件中所要用到的,executor我们输入docker

配置成功后,我们可以在设置中CI/CD选项里的Runners settings选项中的Specific Runners里看到runner信息
下面就是编写.gitlab-ci.yml配置文件:(下面是一个例子,参数官方文档都有介绍)

image: node

before_script:
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts

stages:
    - build

job_build:
    stage: build
    script:
        - npm config set registry=http://0.0.0.0:7001
        - npm install
        - npm run build
        - ssh fay@0.0.0.0 "rm -r /home/fay/dev/nginx/html/;mkdir -p /home/fay/dev/nginx/html/;"
        - scp -r /builds/fay/dist/* fay@0.0.0.0:/home/fay/dev/nginx/html/
    only:
        - master
    tags:
        - fay

before_script里我写的是连接远程服务器的配置,其中SSH_KNOWN_HOSTS、SSH_PRIVATE_KEY需要配置在项目设置CI/CD中Secret variables选项中,相关ssh-gen一定要注意,不要输入密码,不然自动部署的时候会卡在那里报错,SSH_KNOWN_HOSTS里要有记录远程服务器的信息,ssh-scan扫描一下目标地址就可以了记录在SSH_KNOWN_HOSTS里了。

原文地址http://www.bieryun.com/2516.html

相关文章
|
1月前
|
存储 测试技术 持续交付
Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用
本文探讨了Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用。首先介绍了CI/CD的基本概念,接着阐述了Docker在环境一致性、快速部署、资源隔离和轻量化方面的优势。文章还详细讨论了构建、测试和部署阶段的具体集成方法,以及集成后带来的效率提升、可靠性增强、加速交付和易于管理等好处。最后,通过案例分析展示了集成的实际效果,强调了Docker与CI/CD结合的重要性和未来前景。
51 2
|
3月前
|
jenkins 测试技术 持续交付
Docker最佳实践:构建高效的CI/CD流水线
【10月更文挑战第17天】在现代软件开发实践中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)已成为提高开发效率和软件质量的重要手段。Docker作为一种容器技术,为构建一致且隔离的开发环境提供了强有力的支撑。本文将探讨如何利用Docker来优化CI/CD流程,包括构建环境的标准化、镜像管理以及与CI/CD工具(如Jenkins、GitLab CI)的集成。
103 5
|
3月前
|
缓存 监控 数据可视化
利用GitLab CI/CD自动化您的软件开发流程
【10月更文挑战第10天】GitLab CI/CD 是 GitLab 内置的持续集成和持续部署工具,通过编写 .gitlab-ci.yml 文件,可以自动化构建、测试和部署应用程序的过程。本文介绍 GitLab CI/CD 的核心优势、实施步骤及在现代开发中的应用,帮助您提高开发效率和软件质量。
|
3月前
|
运维 Linux 开发工具
第22篇 如何部署gitLab进行开发版本控制
第22篇 如何部署gitLab进行开发版本控制
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
102 0
|
3月前
|
JavaScript 测试技术 持续交付
使用 GitLab CI/CD 管道自动化部署 Web 应用
【10月更文挑战第2天】使用 GitLab CI/CD 管道自动化部署 Web 应用
146 0
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
291 0
|
存储 Shell 网络安全
docker 安装gitlab,配置邮件,备份全流程
docker 安装gitlab,配置邮件,备份全流程
639 0
docker 安装gitlab,配置邮件,备份全流程
|
Docker Ruby 容器
docker安装gitlab-ee并破解
本文介绍docker安装和gitlab-ee的破解方法
docker安装gitlab-ee并破解
|
网络协议 应用服务中间件 程序员
Docker实战:Docker安装Gitlab教程,非常实用
GitLab 是一个用于代码仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务平台, 通过该平台可以实现Github类似的web系统,可以实现浏览代码、管理项目、管理团队人员、管理代码分支、代码提交记录等功能。Gitlab是目前互联网公司最流行的代码版本控制平台。
Docker实战:Docker安装Gitlab教程,非常实用

热门文章

最新文章