背影

  • 项目框架为golang + gin
  • 通过flag包接收命令行参数
  • 通过Jenkins打包
  • 通过K8S部署

解决方案

  • 通过Jenkins运行go build命令打包,GOOS=linux GOARCH=amd64 CGO_ENABLED=0 /usr/local/go/bin/go build -o server …/main.go,由于docker基础镜像为golang:1.18.2-alpine,如果不加GOOS=linux GOARCH=amd64 CGO_ENABLED=0,运行时为报错
  • 通过Dockerfile打包docker镜像,并使用ENV的方式传递命令行参数

Jenkins配置

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

Dockerfile

FROM golang:1.18.2-alpine

WORKDIR /

#将Dockerfile 中的文件存储到/app下
COPY target/ /
RUN mkdir -p /conf
COPY conf/ /conf


# 暴露的端口
EXPOSE 8080

#设置容器的启动命令,CMD是设置容器的启动指令
CMD [ "sh","-c","/shrimp-map-service --database.db=$DATABASE_DB --database.ip=$DATABASE_IP --database.maxIdle=$DATABASE_MAX_IDLE --database.maxOpen=$DATABASE_MAX_OPEN --database.password=$DATABASE_PASSWORD --database.port=$DATABASE_PORT --database.username=$DATABASE_USER_NAME --redis.addr=$REDIS_ADDR --redis.db=$REDIS_DB --redis.password=$REDIS_PASSWORD --redis.poolSize=$REDIS_POOL_SIZE --server.port=$SERVER_PORT"]

yaml

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐