Jenkins怎么生成jar包镜像,然后发布到docker仓库,k8s怎么拉取的docker仓库镜像运行的
时间: 2023-11-23 22:44:38 浏览: 102
jenkins+docker实现自动编译、打包、构建镜像、容器部署
5星 · 资源好评率100%
Jenkins可以通过配置Pipeline来实现自动构建、生成jar包镜像和发布到Docker仓库的功能。下面是一个简单的Pipeline示例:
```groovy
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean package'
sh 'docker build -t my-image .'
}
}
stage('Push') {
steps {
withCredentials([usernamePassword(credentialsId: 'docker-hub-credentials', usernameVariable: 'DOCKER_HUB_USERNAME', passwordVariable: 'DOCKER_HUB_PASSWORD')]) {
sh "docker login -u ${DOCKER_HUB_USERNAME} -p ${DOCKER_HUB_PASSWORD}"
sh 'docker push my-image'
}
}
}
}
}
```
该Pipeline包含两个阶段:Build和Push。在Build阶段中,通过Maven构建项目并生成jar包,然后使用Dockerfile构建一个名为my-image的Docker镜像。在Push阶段中,通过Docker登录并将my-image镜像推送到Docker Hub仓库。
在Kubernetes中运行Docker镜像时,需要先从Docker仓库中拉取镜像并部署到Kubernetes集群中。可以使用kubectl命令来完成这个过程。例如,如果要在Kubernetes中运行刚才生成的my-image镜像,可以执行以下命令:
```
kubectl run my-container --image=my-image --port=8080
```
该命令将在Kubernetes中创建一个名为my-container的容器,并使用my-image镜像运行该容器,将容器的8080端口暴露给外部访问。
阅读全文