GitOps之CI/CD

  • 个人觉得gitlab集成,比较适合一些小公司开发自己编译打包,因为缺陷太了,不适合中大型公司,功能太少,尤其非常不安全 ,其实这次演示也算不上ci/cd吧
  • 安装gitlab
docker run -d \
   -p 443:443 \
   -p 80:80 \
   -p 222:22 \
   --name gitlab \
   -v /data/gitlab/etc:/etc/gitlab \
   -v /data/gitlab/log:/var/log/gitlab \
   -v /data/gitlab/data:/var/opt/gitlab \
   gitlab/gitlab-ce:14.4.5-ce.0
  • 获取密码密码
 docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
  • gitlab-runner安装
docker run -d --name runner  -v /config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock   gitlab/gitlab-runner:alpine3.13
  • GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。
    在这里插入图片描述
注册gitlab-runner获取token

在这里插入图片描述

在这里插入图片描述

手动人肉注册一个,比较恶心的runner

进入刚才的runner容器

1. docker exec -it gitlab-runne bash
# 输入命令注册
2. 
 gitlab-runner register \
         --non-interactive \
          --executor "docker" \
          --docker-image "golang:1.17.6-alpine3.15" \
          --url "http://192.168.8.10/" \
          --registration-token "bTYW9wdU_M9nv1Kx_4Vi" \
          --description "docker-runner" \
          --tag-list "docker,deploy" \
          --run-untagged="true" \
          --locked="false" \
          --access-level="not_protected"

再注册一个node容器的runner

bash-5.1# gitlab-runner register \
          --non-interactive \
          --executor "docker" \
          --docker-image "node:fermium-alpine" \
          --url "http://192.168.8.10/" \
          --registration-token "bTYW9wdU_M9nv1Kx_4Vi" \
          --description "node-runner" \
          --tag-list "docker,deploy" \
          --run-untagged="true" \
          --locked="false" \
          --access-level="not_protected"
Runtime platform                                    arch=amd64 os=linux pid=57 revision=5316d4ac version=14.6.0
Running in system-mode.                            
                                                   
Registering runner... succeeded                     runner=bTYW9wdU
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

在这里插入图片描述
在这里插入图片描述
创建一个demon项目测试一下
在这里插入图片描述

  • 语法不再解释了
    .gitlab-ci.yml
services:
  - docker:19.03.7-dind
stages:
  - build 
  - docker image
  - deploy

before_script:
  - ls 

docker build:
  image: docker:stable
  stage: docker image
  tags:
    - docker

  script:
  
   - docker  build -t  $DOCKER_REPO .
   - docker login -u $DOCKER_USER -p $DOCKER_PASSWORD docker.io
   - docker push $DOCKER_REPO
  only:
    - jbjb

deploy:
  image: golang:1.17.6-alpine3.15
  stage: deploy
  tags:
    -  docker
  script:
    - export GOPROXY=https://goproxy.cn
    - go get github.com/gin-gonic/gin
    - go get github.com/shirou/gopsutil/host
    -  go mod init test01
    -  go mod tidy
    -  go build  test01 .
  only:
    - jbjb
  artifacts:
    #保留版本
    expose_as: 'artifact 3'
    name: "$CI_JOB_NAME"
    #需要上传的制品我的test01
    paths:
      - test01


在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值