栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Jenkins简单流水线案例(golang版)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jenkins简单流水线案例(golang版)

一、项目结构


main.go

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	router := gin.Default()
	router.GET("/", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"name": "jacson",
			"age":  22,
		})
	})
	router.Run(":8090")
}
二、编写dockerfile
FROM golang:alpine

# 为我们的镜像设置必要的环境变量
ENV GO111MODULE=on 
    CGO_ENABLED=0 
    GOOS=linux 
    GOARCH=amd64 
    GOPROXY=https://goproxy.cn,direct

# 移动到工作目录:/build
WORKDIR /build

# 将代码复制到容器中
COPY . .
RUN go mod download
# 将我们的代码编译成二进制可执行文件  可执行文件名为 app
RUN go build -o app .

# 移动到用于存放生成的二进制文件的 /dist 目录
WORKDIR /dist

# 将二进制文件从 /build 目录复制到这里
RUN cp /build/app .

# 声明服务端口
EXPOSE 8090

ENTRYPOINT ["/dist/app"]
三、编写Jenkinsfile
//写流水线的脚本(声明式、脚本式)
pipeline{
    //全部的CICD流程都写在这里

    //任何一个代理可用就执行
    agent any
    //定义流水线的加工流程
    stages{
        //流水线的所有阶段
        stage('环境检查'){
            steps {
                echo "正在检查基本信息"
                sh 'printenv'
            }
        }
        //1、编译
        //一般双引号是变量,单引号用于常量
        stage('编译'){
            steps {
                //要做的所有事情
                echo "编译..."
                sh 'pwd && ls -alh'  //当前在哪个文件夹,在干什么
                sh 'printenv'
                sh "echo ${WORKSPACE}"
                echo "${WORKSPACE}"
            }
        }
        //2、测试
        stage('测试'){
            steps {
                //要做的所有事情
                echo "测试..."
                sh 'pwd && ls -alh'
            }
        }
        //3、打包
        stage('打包'){
            steps {
                //要做的所有事情
                echo "打包..."
                sh 'docker version'
                sh 'pwd && ls -alh'
                sh 'docker build -t golang-demo .'
            }
        }
        //4、部署
        stage('部署'){
            steps {
                //要做的所有事情
                echo "部署..."
                //删除
                sh 'docker rm -f devops-demo'
                //运行docker镜像,并将容器名设置为devops-demo
                sh 'docker run -d -p 8888:8090 --name devops-demo golang-demo'
            }
        }
    }
}
四、提交git项目到gitee

五、Jenkins打开Blue Ocean

前提要先下载dockers 插件

开启流水线

六、浏览器访问

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号