1.新建代码仓库和dockerfile
dockerfile文件
FROM ccr.ccs.tencentyun.com/pdabase/centos8
ENV WORKDIR /app/项目名字
RUN mkdir -p $WORKDIR
RUN mkdir -p $WORKDIR/resource
COPY server $WORKDIR
COPY resource/ $WORKDIR/resource
#定义时区参数
ENV TZ=Asia/Shanghai
#设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
WORKDIR $WORKDIR
CMD ["./server"]
2.新建构建计划(打包镜像)
2.1新建构建计划
2.2添加制品库
2.3 打包成镜像脚本
pipeline {
agent any
stages {
stage('检出') {
steps {
checkout([$class: 'GitSCM',
branches: [[name: GIT_BUILD_REF]],
userRemoteConfigs: [[
url: GIT_REPO_URL,
credentialsId: CREDENTIALS_ID
]]])
}
}
stage('编译') {
agent {
docker {
image 'pdabase/gobase'
reuseNode 'true'
registryUrl 'https://ccr.ccs.tencentyun.com'
}
}
steps {
sh '''
cd ./server
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=off
go env
go build -o server
ls -la'''
}
}
stage('构建镜像并推送到 CODING Docker 制品库') {
steps {
dir('./server') {
sh "docker build -t ${CODING_DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION} -f ${DOCKERFILE_PATH} ${DOCKER_BUILD_CONTEXT}"
useCustomStepPlugin(key: 'coding-public:artifact_docker_push', version: 'latest', params: [image:"${CODING_DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION}",repo:'${DOCKER_REPO_NAME}',properties:'[]'])
}
}
}
}
environment {
CODING_DOCKER_REG_HOST = "${CCI_CURRENT_TEAM}-docker.pkg.${CCI_CURRENT_DOMAIN}"
CODING_DOCKER_IMAGE_NAME = "${PROJECT_NAME.toLowerCase()}/${DOCKER_REPO_NAME}/${DOCKER_IMAGE_NAME}"
}
}
2.4变量和缓存(默认)
3.在腾讯云上购买集群,配置好
3.1新建一个集群
自己玩选的购买标准集群
3.2选择集群机器和带宽的配置 (按小时和流量计费,配置越高收费越高)
3.3选择云服务器配置
3.4确认集群配置信息
点击确认后等待集群创建,需要一点时间
4.新建应用绑定云账号和集群
4.1.新建云账号
4.2.创建应用
应用中心-创建应用
4.3创建部署流程
4.4关联云账号
4.5 新建发布单
选择应用和部署流程
4.6 点击发布
如果服务不依赖于配置的话,这个时候服务应该起来了,可以去腾讯云的控制台看实例是否启动
5.配置文件、service和ingress
5.1新建配置文件config
5.2 将配置文件和Deployment实例关联
添加配置的数据卷,添加挂载点,注意挂载路径
到这可以重启一下服务,服务会读取配置文件并重启
6.添加service
新建service-关联Deployment 提供公网加端口访问
主机端口既是访问端口
比如我的端口是30004
我访问服务某个接口 便是:http://集群节点的公网ip:30004/路径
workload绑定很关键,关联到Deployment,根据selector
完成以上步骤便可访问服务接口了
7.添加ingress
为了方便服务的统一管理,统一入口,可以新建ingress,根据路由进行请求的转发到相应的service,承担网关的角色,一个域名可以根据路由绑定不同的服务(有点类似nginx)。
7.1新建ingress
服务与路由-ingress
后端服务即是需要关联的service服务
7.2通过ingress访问服务
新建ingress完成后,ingres会提供一个公网IP,我们可以通过这个IP(默认80端口)加上服务的路由地址。同样可以访问到我们新建的服务