来了来了莫急,实战gitlab-ci配置,直接上线上。

11 篇文章 0 订阅
6 篇文章 0 订阅
  1. 环境部署:https://blog.csdn.net/weixin_43606975/article/details/125746624?spm=1001.2014.3001.5501

  2. harbor安装不说了,都是大佬直接跳过。

  3. .gitlab-ci.yaml文件

stages:
  - package
  - buidl
  - deploy
  - notify
package:
    stage: package
    image: 192.168.10.100:8080/test/golang:v1
    tags: 
      - k8s
    script:
     - "go build -o gotest test.go"
     - "ls ./;pwd ;echo $CI_PROJECT_DIR ;echo $CI_REGISTRY_IMAGE;echo $CI_COMMIT_TAG; echo $CI_COMMIT_SHORT_SHA ; echo $CI_PROJECT_NAME "
    only:
     - "tags"
    cache:
      paths:
        - ./
    artifacts:  
      paths:   #传给下级的目录
        - ./gotest
    

buidl:
    stage: buidl
    image: 192.168.10.100:8080/test/executor-debug:v1
    script:
     - mkdir -p /kaniko/.docker
     - echo ${DOCKER_AK} > /kaniko/.docker/config.json
     - cat /kaniko/.docker/config.json
     - ls ./
     - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination 192.168.10.100:8080/test/${CI_PROJECT_NAME}:$CI_COMMIT_SHORT_SHA
     
    tags: 
      - k8s
    only:
     - "tags"
     
deploy:
    stage: deploy
    image: registry.cn-hangzhou.aliyuncs.com/haoshuwei24/kubectl:1.16.6
    tags: 
      - k8s
    script:
     - mkdir -p $HOME/.kube
     - echo "$KUBERNETES_SECRET" >> "$HOME/.kube/config"
     - kubectl version
     - kubectl  get pods -A
     - kubectl set image deployment/${CI_PROJECT_NAME}  golang=192.168.10.100:8080/test/test2:${CI_COMMIT_SHORT_SHA} -n demon
    only:
     - "tags"
     
notifyFailWeChat:
  stage: notify
  image: curlimages/curl:latest
  script:
    - curl 'https://oapi.dingtalk.com/robot/send?access_token=4df278df1de6d0429e35caf15e3c99953db9d68a3' -H 'Content-Type:application/json' -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$CI_PROJECT_NAME项目构建成功\n>本次构建由:$GITLAB_USER_NAME 触发\n>项目名称:$CI_PROJECT_NAME\n>提交号:$CI_COMMIT_SHA\n>提交日志:$CI_COMMIT_MESSAGE\n>构建分支:$CI_COMMIT_TAG\n>流水线地址:[$CI_PIPELINE_URL]($CI_PIPELINE_URL)\"}}"

  only:
    - tags
  when: on_failure

# 构建成功时的通知消息
notifySuccessWeChat:
  stage: notify
  image: curlimages/curl:latest
  script:
    - curl 'https://oapi.dingtalk.com/robot/send?access_token=4df2745e8dfe2ba73899043c99953db9d68a3' -H 'Content-Type:application/json' -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$CI_PROJECT_NAME项目构建成功\n>本次构建由:$GITLAB_USER_NAME 触发\n>项目名称:$CI_PROJECT_NAME\n>提交号:$CI_COMMIT_SHA\n>提交日志:$CI_COMMIT_MESSAGE\n>构建分支:$CI_COMMIT_TAG\n>流水线地址:[$CI_PIPELINE_URL]($CI_PIPELINE_URL)\"}}"
  only:
    - tags
  when: on_success

  1. Dockerfile
FROM 192.168.10.100:8080/test/golang:v1
WORKDIR  /opt/app
ADD  gotest  /opt/app
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime  && echo $TZ > /etc/timezone
CMD  ["/opt/app/gotest"]

  1. test.go
package main

import (
    "fmt"
)

func main() {
   // %d 表示整型数字,%s 表示字符串
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    var target_url=fmt.Sprintf(url,stockcode,enddate)
    fmt.Println(target_url)
}

在这里插入图片描述
镜像tag的:
在这里插入图片描述

  1. gitlab配置
    在这里插入图片描述

在这里插入图片描述

  1. harbor-secret创建
#cat /root/.docker/config.json |base64
#cat harbor-secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: harbor-secret
  namespace: demon
data:
  .dockerconfigjson: |
     ewoJIewoJCSIxOTIuMTY4LjEwLjEwMDV0aCI6ICJZV1J0
     YVc0NlNHRnlZbTl5TVRJek5EVT0iCfQo
type: kubernetes.io/dockerconfigjson

harbor信息:
在这里插入图片描述

  1. go-deployment创建
apiVersion: apps/v1
kind: Deployment
metadata:
  name: test2
  namespace: demon
spec:
  replicas: 1
  selector:
    matchLabels:
      service: golang
  template:
    metadata:
      labels:
        service: golang
    spec:
      imagePullSecrets:
        - name: harbor-secret
      containers:
        - name: golang
          image: 192.168.10.100:8080/test/test2:latest
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 200m
              memory: 200Mi

  1. 打tag自动发布

在这里插入图片描述

在这里插入图片描述

  1. 查看pod日志:
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值