前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2022-03-13:golang项目代码push到gogs上,如何自动编译、打镜像、k8s上运行?

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

原创
作者头像
福大大架构师每日一题
发布2022-03-13 08:19:20
2480
发布2022-03-13 08:19:20
举报

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

答案2022-03-13:

2022-02-23:如何搭建k8s单机环境(用k3s),并且搭建dashboard?

2022-03-12:k8s如何搭建gogs+drone实现自动化部署cicd,yaml如何写?

上面的环境,都需要搭建。

测试demo见 git地址

主要是test1/.drone.yml的编写。

from_secret: kube_token,这个kube_token需要在drone页面中配置,

如下:

代码语言:yaml
复制
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

获取kube_token如下:

代码语言:yaml
复制
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)
在这里插入图片描述
在这里插入图片描述

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

代码语言:text
复制
FROM scratch
COPY releases/ /bin/

其他内容,见git地址

效果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档