Go环境搭建

  • root账户

下载Golang

[root@infra2-test-k8s /]# cd /usr/local/

[root@infra2-test-k8s local]# wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz

[root@infra2-test-k8s local]# tar -xzvf go1.14.4.linux-amd64.tar.gz 

创建Go目录

[root@infra2-test-k8s local]# cd /

[root@infra2-test-k8s /]# mkdir go

配置环境变量并设置代理

[root@infra2-test-k8s /]# vim /etc/profile

# 添加以下内容:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/go
export GO111MODULE=auto
export GOPROXY=https://goproxy.cn,direct # 使配置文件生效
[root@infra2-test-k8s /]# source /etc/profile # 校验
[root@infra2-test-k8s /]# go version
go version go1.14.4 linux/amd64
[root@infra2-test-k8s /]# go env

Jenkins配置Golang环境

下载Go插件

插件管理可选插件中搜索Go然后点击直接安装,安装完毕之后需要重启jenkins。

配置Go环境

系统管理>全局工具配置>Go>Go安装

去掉自动安装的勾选,然后别名:go1.14.4,安装目录:/usr/local/go



如果出现以下问题:

go: command not found

解决办法:

[root@infra2-test-k8s bin]# ln -s /usr/local/go/bin/go /usr/bin/

还不行的话则尝试将环境变量配置到jenkins中:

GOROOT=/usr/local/go
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/jdk1.8.0_231/bin:/opt/apache-maven-3.6.3/bin:/usr/local/go/bin
GOPATH=/go
GO111MODULE=on
GOPROXY=https://goproxy.cn 路径:系统管理>系统配置>环境变量

Dockerfile

Dockerfile

FROM docker.io/centos:7

ENV PROJECT_DIR=/opt/docker
ENV TZ=Asia/Shanghai
WORKDIR $PROJECT_DIR COPY src/dataservice/dataservice $PROJECT_DIR/goapp
COPY src/dataservice/ipipfree.ipdb $PROJECT_DIR/ipipfree.ipdb
COPY src/dataservice/ds.cnf $PROJECT_DIR/ds.cnf
COPY src/dataservice/start.sh $PROJECT_DIR/start.sh RUN mkdir /opt/logs RUN chown -R daemon:daemon $PROJECT_DIR
RUN chown -R daemon:daemon /opt/logs EXPOSE 8080
USER daemon ENTRYPOINT ["sh", "/opt/docker/start.sh", "test"]

start.sh:

#!/bin/bash

if [[ $1 == 'prod' ]]
then
sed -i "s/env=.*/env=DS_ONLINE/" ds.cnf
else
sed -i "s/env=.*/env=DS_DEV/" ds.cnf
fi echo "启动应用" ./goapp > ./nohup.out

build.sh

#!/bin/sh
cd src/dataservice/
pwd
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a dataservice.go

因为项目结构是:

dataservice
├── pkg
├── build.sh
└── src
├── dataservice
│ └── dataservice.go
│ └── start.sh
│ └── ds.cnf
└── go.mod

并且使用了go modle,如果直接build src/dataservice/dataservice.go文件的话会报错,提示找不到依赖的包,jenkins pipeline又不支持cd命令,进不了src/dataservice/目录,只能想了个折中的办法,使用build.sh脚本执行打包命令。

原文地址:https://www.lifengdi.com/archives/article/1966

k8s+docker部署Golang项目的更多相关文章

  1. Docker 部署Django项目

    使用docker部署django项目也很简单,挺不错,分享下 环境 默认你已安装好docker环境 django项目大概结构 (p3s) [root@opsweb]# tree opsweb opsw ...

  2. docker 部署django项目(nginx + uwsgi +mysql)

    最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高.特此写下随笔与小伙伴们分享,希望能对大家有所启发. docker的理论我就不赘 ...

  3. Docker容器和本机之间的文件传输 使用Docker部署Tomcat项目

    Docker容器和本机之间的文件传输. http://blog.csdn.net/leafage_m/article/details/72082011 使用Docker部署Tomcat项目 http: ...

  4. docker初体验:Docker部署SpringCloud项目eureka-server

    Docker部署SpringCloud项目eureka-server 1 创建eureka-server工程 创建父工程cloud-demo,其pom.xml如下: <?xml version= ...

  5. 云服务器上利用Docker部署Django项目

    转载别人的,请看下面链接 云服务器上利用Docker部署Django项目

  6. 笔记14:Docker 部署Python项目

    Docker 部署Python项目 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如果从一种操作系统里面运行另一种操作系统,通常我们采取 ...

  7. Docker网络配置、Docker部署分布式项目

    目标 1.Docker网络配置 2.Docker部署SpringCloud项目 Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/cont ...

  8. Docker 部署 vue 项目

    Docker 部署 vue 项目 Docker 作为轻量级虚拟化技术,拥有持续集成.版本控制.可移植性.隔离性和安全性等优势.本文使用Docker来部署一个vue的前端应用,并尽可能详尽的介绍了实现思 ...

  9. Docker部署web项目-jar包

    一.Docker部署web项目-jar包 ①搜索mysql镜像 docker search mysql ②拉取镜像至本地仓库(本文选取的mysql镜像5.7版本) docker pull mysql/ ...

随机推荐

  1. express.static设置缓存

    之前因为服务器端脚本不大,都是直接手写,按请求文件后缀名设置cache-control的max-age. 今天决定还是改成express,发现原来express.static()方法设置缓存,直接在参 ...

  2. 给DataTable添加行的几种方式

    最近做项目的时候遇到向已有Table中添加另外一个Table中的某一行数据.我是采用这样思路做的: DataTable dtSource = xxxx;//获得的数据源 DataTable dtTar ...

  3. python3.x 基础一:dict字典

    字典,{key,value} help(dict) 定义一个字典: >>> dict1 {', 'name': 'yzw'} >>> dict2=dict1 > ...

  4. 解码问题--leetcode:91 (2019商汤笔试)

    题目:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'. 现在给一串数字,给出有多少种可能的译码结果. 想法: 该题就是动态规划问题,建议在写 ...

  5. [256个管理学理论]002.青蛙效应(Frog Effect)

    青蛙效应(Frog Effect) 从一个话题开始: 当下,社会发展突飞猛进,日新月异.在世界经济危机中,我国国民生产总值增长幅度始终在8%以上,引起世人的瞩目. 但,在国内时常也能听到广大投资者对股 ...

  6. Java的基本数据类型及其封装类

    Java的基本数据类型及其封装类 一.8种基本数据类型 二.基本数据类型的包装类及大小 三.基本数据类型和封装类的区别 定义不同.封装类是对象,基本数据类型不是: 使用方式不同.封装类需要先new初始 ...

  7. java内部类简单用法

    package innerClass; /** * 特点 * 1:增强封装性,通过把内部类隐藏在外部类的里面,使得其他类不能访问外部类. * 2:增强可维护性. * 3:内部类可以访问外部的成员. * ...

  8. JavaScript 简版-菜鸟中的菜鸟2

    JavaScript 输出 JavaScript 没有任何打印或者输出的函数. JavaScript 显示数据 JavaScript 可以通过不同的方式来输出数据: 使用 window.alert() ...

  9. ES6-面向对象即类

    简单介绍 在ES6面向对象基本上与java的类实现类似 1 class关键字,构造器和类分开了 1.1 ES5代码如下 <!DOCTYPE html> <html lang=&quo ...

  10. 数据库之 MySQL --- 数据处理 之多表查询 (三)

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.多表查询 [1]什么是多表查询? 即,从多个表中获取数据. 注意: 在多表查询是,如果列明在两个表中 ...