当前位置: 首页 > news >正文

从0到1部署gitlab自动打包部署项目

本文重点在于配置ci/cd打包 使用的是docker desktop

第一步安装docker desktop

Docker简介

  • Docker 就像一个盒子,里面可以装很多物件,如果需要某些物件,可以直接将该盒子拿走,而不需要从该盒子中一件一件的取。
  • Docker中文社区、Docker中文文档

安装docker desktop 官方下载地址Download Docker Desktop | Docker

下载完毕后出现

点击settiing 将如下代码复制紧engine 切换源

{"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],"insecure-registries": [],"debug": true,"experimental": false
}

测试docker desktop是否安装成功

在终端输入

docker run hello-world 

再去docker desktop查看是否有如下界面

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

出现了代表成功 我们可以进行下一步了 docker desktop剩余具体命令可以查看👇博主

docker desktop安装参考博主: 从零开始的Docker Desktop使用,Docker快速上手 ( ̄︶ ̄) Docker介绍和基础使用_寻_觅的博客-CSDN博客_docker desktop

第二步 给docker安装上gitlab相关

安装gitlab镜像 在终端输入 安装

docker pull gitlab/gitlab-ce

安装完毕后可以看到docker desktop中出现

 点击

 命令中的443,80,22分别代表本机和docker容器端口之间的映射,可以根据不同需求进行修改。

 2、修改默认账号登录密码

首先我们在终端输入 

docker ps

可以查看到正在运行的docker实例  将实例的id复制过来

docker exec -it docker的id /bin/bash

修改密码

user=User.where(id:1).first //1为root用户
user.password='123456' 
user.password_confirmation='123456'
user.save!
exit
exit

3.安装gitlab-runner

docker pull gitlab/gitlab-runner:latest

这里可以进入到git中 如果还没有新建 可以看下面的博客 

前端从0到1部署 github的vue项目1_孙可爱.的博客-CSDN博客

新建完毕 后进入项目

 

 

我们去 gitlab setting---CI/CD-- runner中查看到 就代表成功将runner加入到了gitlab

这个时候我们需要进入本地终端

在本地生成公钥 输入 comment值可以可以随便输入 也可写邮箱地址 

ssh-keygen -t rsa -b 2048 -C "<comment>"

一路回车 不用输入密码之类的东西 再输入 如下命令 公钥放在远程的服务器上的权限文件里

scp -r id_rsa.pub root@1.2.3.4:/root/.ssh/authorized_keys //这里的1.2.3.4换成你想上传的服务器骶椎

 再输入 用来验证是否可以不输入密码就能进入远程服务器 如果不需要输入则代表成功

下一步我们要将新建的 公钥放在gitlab

vim ~/.ssh/id_rsa

进入公钥 

复制 

将我们刚刚复制的公钥粘贴进value中 key可以使用 SSH_PRIVATE_KEY  

这一步相当于给gitlab上面设置了一个变量

 下一步我们需要配置打包文件gitlab-ci.yml文件,添加下

stages: # 分段- install- build- deploycache: # 缓存paths:- node_modules- buildinstall-job:tags:-  runnertag //你之前取得tag名字stage: installscript:- npm installbuild-job:tags:- runnertag //你之前取得tag名字stage: buildscript:- npm run builddeploy-job:tags:- sssstage: deploybefore_script:- 'which ssh-agent || ( yum update -y && yum install openssh-client git -y ) '- eval $(ssh-agent -s)- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -- mkdir -p ~/.ssh- chmod 700 ~/.ssh- ssh-keyscan xxxx >> ~/.ssh/known_hosts  //xxxx替换为远程服务器的地址- chmod 644 ~/.ssh/known_hostsscript:- scp -r dist root@xxxx:/usr/local/www

 git push上我们的项目 就可以看到他在自动打包编译啦

参考:使用gitlab runner部署项目_Truth、的博客-CSDN博客

Gitlab-ci:从零开始的前端自动化部署_barnett_y的博客-CSDN博客_gitlab ci 自动化部署

相关文章:

  • Google 提示:切忌滥用 DORA 指标
  • Linux: DB: MariaDB: 10.6 升级导致的兼容问题
  • Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot
  • DRF从入门到精通二(Request源码分析、DRF之序列化、反序列化、反序列化校验、序列化器常用字段及参数、source、定制字段、保存数据)
  • 【音视频】Mesh、Mcu、SFU三种框架的总结
  • 洛谷 NOIP2016 普及组 回文日期
  • TensorFlow(2):Windows安装TensorFlow
  • Maths
  • myspl左外连
  • Echarts饼图tooltip渐变色,内部legend百分比保留整数方法
  • Flutter本地化(国际化)之App名称
  • 压力测试(超详细总结)
  • 【Spring实战】配置多数据源
  • [调试]stm32使用过程debug记录,持续更新ing
  • 蓝牙物联网与嵌入式开发如何结合?
  • ES6指北【2】—— 箭头函数
  • 【React系列】如何构建React应用程序
  • 3.7、@ResponseBody 和 @RestController
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • ES6--对象的扩展
  • gulp 教程
  • leetcode388. Longest Absolute File Path
  • OSS Web直传 (文件图片)
  • php面试题 汇集2
  • Shadow DOM 内部构造及如何构建独立组件
  • SQLServer之创建数据库快照
  • 半理解系列--Promise的进化史
  • 记一次删除Git记录中的大文件的过程
  • 马上搞懂 GeoJSON
  • 配置 PM2 实现代码自动发布
  • 悄悄地说一个bug
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 网页视频流m3u8/ts视频下载
  • 为视图添加丝滑的水波纹
  • 详解NodeJs流之一
  • 一份游戏开发学习路线
  • 原生 js 实现移动端 Touch 滑动反弹
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​插件化DPI在商用WIFI中的价值
  • #includecmath
  • #stm32驱动外设模块总结w5500模块
  • #宝哥教你#查看jquery绑定的事件函数
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (三)终结任务
  • (十五)使用Nexus创建Maven私服
  • (四)c52学习之旅-流水LED灯
  • (转)ABI是什么
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .net core 6 redis操作类
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例