##初探在容器上构建持续部署( 四 )
sh ''''''
docker login -u ${DOCKER_HUB_USER} -p ${DOCKER_HUB_PASSWORD}
docker build -f ${WORKSPACE}${dockerDirectory} -t ${imageName} .
docker push ${imageName}
''''''
}
}
}
如果你想了解Jenkins命令详情 , 请参阅Set Up a Jenkins CI/CD Pipeline with Kubernetes
https://akomljen.com/set-up-a-jenkins-ci-cd-pipeline-with-kubernetes/
我们这里并没有重新生成Go程序的镜像文件 , 而是复用了以前就有的k8s创建Go程序的镜像文件 , Go程序的镜像文件路径是“scriptkubernetesbackenddockerDockerfile-k8sdemo-backend” 。
它的代码如下 。 后面还会讲到这样做的好处 。
# vagrant@ubuntu-xenial:~/app/k8sdemo/script/kubernetes/backend$
# docker build -t k8sdemo-backend .
FROM golang:latest as builder
# Set the Current Working Directory inside the container
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
WORKDIR /app/cmd
# Build the Go app
#RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main.exe
RUN go build -o main.exe
######## Start a new stage from scratch #######
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
# Copy the Pre-built binary file from the previous stage
COPY --from=builder /app/cmd/main.exe .
# Command to run the executable
# CMD exec /bin/bash -c ''trap : TERM INT; sleep infinity & wait''
CMD
关于Go镜像文件详情 , 请参阅创建优化的Go镜像文件以及踩过的坑
https://blog.csdn.net/weixin_38748858/article/details/102714799
部署镜像:
下面部署Go程序到k8s上 , 这里也没有用kubectl插件 , 而是直接用kubectl命令调用已经存在的k8s的部署和服务配置文件(文件里会引用生成的Go镜像) , 它的好处后面也会讲到 。
stage('Deploy') {
container('modified-jenkins') {
sh ''kubectl apply -f ${WORKSPACE}${kubBackendDirectory}/backend-deployment.yaml''
sh ''kubectl apply -f ${WORKSPACE}${kubBackendDirectory}/backend-service.yaml''
}
}
关于k8s的部署和服务配置文件详情 , 请参阅把应用程序迁移到k8s需要修改什么?
https://blog.csdn.net/weixin_38748858/article/details/102758381
- 为什么没用Declarative?
如果你想知道怎样在Declarative模式下设置挂载卷 , 请参阅Jenkins Pipeline Kubernetes Agent shared Volumes
https://devops.stackexchange.com/questions/4695/jenkins-pipeline-kubernetes-agent-shared-volumes
- 自动执行项目:
- 「预计 3 分钟读完」助力构建基于AI的服务生态体系,第四范式完成2.3亿美元C+轮融资
- 人员防控:合肥:构建五道硬核“监督网” 筑牢境外输入“防疫墙”
- PingWest品玩:Gartner报告:阿里云容器产品布局全球第一
- 【腾讯科技】微软谷歌亚马逊云竞争开启新战线 无需编写代码短时间内构建应用
- Gartner报告:阿里云容器产品布局全球第一
- 『腾讯科技』265亿美元!美国第三、第四大运营商正式合并 努力构建最好的5G网络
- 『中国经济网』构建中国云生态|华云数据携手云新信息推出数据中心设备管理平台DCM联合解决方案
- 「滕州房产超市网」滕州亿和广场2020年3月工程播报,一砖一瓦构建幸福
- 如何借助openEuler 20.03 LTS版本构建企业级服务器操作系统
- [科技女王范儿]后者致力于构建世界范围的三维建模,Niantic宣布收购AR点云技术公司6D.ai