首页 > 其他分享 >golang项目代码push到gogs上,如何自动编译、打镜像、k8s上运行?

golang项目代码push到gogs上,如何自动编译、打镜像、k8s上运行?

时间:2022-12-27 13:23:10浏览次数:65  
标签:test1 name image gogs secret golang token push kube

golang项目代码push到gogs上,如何自动编译、打镜像、k8s上运行?

 

上面的环境,都需要搭建。
测试demo见 git地址

主要是test1/.drone.yml的编写。
from_secret: kube_token,这个kube_token需要在drone页面中配置,
如下:

kind: pipeline
type: docker
name: dev

steps:
  - name: build
    image: golang
    pull: if-not-exists
    environment:
      GOPROXY: https://goproxy.cn,direct
      CGO_ENABLED: 0
      GO111MODULE: on
      GOOS: linux
      GOARCH: amd64
    commands:
      - go env
      - go build -o releases/test1-api ./cmd/test1-api
      - sed -i "s/【DRONE_COMMIT:0:8】/${DRONE_COMMIT:0:8}/g" .helm/dev/values.yaml
      - ls releases

  - name: image
    image: plugins/docker
    pull: if-not-exists
    settings:
      registry: 192.168.204.13:50000
      repo: 192.168.204.13:50000/moonfddgroup/test1
      dockerfile: ./Dockerfile
      tags: "${DRONE_COMMIT:0:8}"
      insecure: true

  - name: deploy
    image: "pelotech/drone-helm3"
    pull: if-not-exists
    settings:
      mode: upgrade
      chart: ./.helm/dev
      vaules_yaml: ./.helm/dev/values.yaml
      release: test1
      namespace: droneci
      kube_api_server: "https://192.168.204.13:6443"
      kube_token:
        from_secret: kube_token
      skip_tls_verify: true
      values:
        - image.tag=${DRONE_COMMIT:0:8}

trigger:
  branch:
  - master
  - aaa
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

获取kube_token如下:

echo $(k3s kubectl -n kube-system get secret $(k3s kubectl -n kube-system get secret | grep ^kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
 
  • 1
  • 2

在这里插入图片描述

test1/Dockfile内容就太简单了,只需要打包,其他事情啥都不用干。如下:

FROM scratch
COPY releases/ /bin/
 
  • 1
  • 2

其他内容,见git地址
效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  文章知识点与官方知识档案匹配,可进一步学习相关知识 云原生入门技能树首页概览8455 人正在系统学习中 福大大架构师每日一题 微信公众号 大厂之下第一人。最新面试题,针对高级开发

标签:test1,name,image,gogs,secret,golang,token,push,kube
From: https://www.cnblogs.com/python9090/p/17007871.html

相关文章

  • Golang项目在idea中运行遇到的坑
    因为是第一次搞go的项目,也没有学过go这个语言,凭借着强大的运气开始修改开源项目wayne的源码。运行过程中,遇到了好多问题。第一个问题就是后端的go项目没法启动。1.数据......
  • 【Golang 快速入门】项目实战:即时通信系统
    即时通信系统-服务端项目架构图: 版本迭代:版本一:构建基础Server版本二:用户上线功能版本三:用户消息广播机制版本四:用户业务层封装版本五:在线用户查询版本六:修改用户名......
  • golang入门项目—日志收集
    传统ELK架构的日志收集:存在的问题:Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。适用于小规模的集群使用。第二种架构:位于各个节点上......
  • Golang 项目部署
    Go语言项目部署,Go项目部署注:本教程不包含golang编译部分,请自行编译;项目使用supervisor进行部署。supervisor详细操作可以参考:Supervisor配置详解问题可以参考:error:......
  • Docker一键部署Golang项目
    Docker部署go项目首先我们把我们写的go项目通过Xftp传到服务器上面,或者通过git从Coding里面拉取一份,未来方便起见我是把我的所有的go项目都放在了/usr/local/goproject目......
  • MobPush—为什么说推送push的时候强调一定要用户分组?
    不知道你是否有这样的经历,你前脚在某宝上买了一双鞋,后脚就会接收到来自某宝Push来的配套袜子,刚关注了一家理发店,就会收到源源不断的某众点评的推送,告诉你这家店又有新折扣啦......
  • Prometheus监控之pushgateway安装配置
    一、简介1、介绍1、pushgateway是什么pushgateway是另一种数据采集的方式,采用被动推送来获取监控数据的prometheus插件,它可以单独运行在任何节点上,并不一定要运行在被监控的......
  • Prometheus pushgateway(不发布)
    一.概述 前面讲到Exporter章节时,讲到了Prometheus服务器运行作业以从目标中获取指标。而指标的获取均是基于pull,即拉取模式的架构。然而在某些情况下,会出现无法从中......
  • 周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)
    所有人都听过这样一个歌谣:从前有座山,山里有座庙,庙里有个和尚在讲故事:从前有座山。。。。,虽然这个歌谣并没有一个递归边界条件跳出循环,但无疑地,这是递归算法最朴素的落地实......
  • APP使用消息推送(MobPush)是什么?
    在一个移动操作系统中,APP可以通过消息推送(push)的功能来提醒或者唤醒用户,从而起到拉新促活的效果,这是目前app运营的重要渠道之一,那么,究竟消息推送(push)是什么呢? Push指运营......