Jenkins Pipeline BuildDockerImage 推送到私服
如果在Pod Agent内执行需要基于我的带Docker的Agent镜像,或自己在Jenkins-Agent上封装Docker功能,我的Docker镜像不保证维护,建议使用自己的
# 在凭证里添加nexus的凭证
类型username and password
# Pipeline
env.appName = "myapp"
env.BUILD_TAG = "Jenkins自动生成这个 是构建的序列号"
env.serviceDir = "."
env.entrypoint = "java -jar /app.jar"
stage("docker build and push") {
sh "mkdir /etc/docker/"
//配置私服支持http协议
def daemon = '{\"registry-mirrors\":[\"https://docker.mirrors.ustc.edu.cn\"],\"insecure-registries\":[\"nexus3:8082\",\"nexus3:8083\"]}'
dir(env.serviceDir) {
sh "echo '" + daemon + "' > /etc/docker/daemon.json"
sh "service docker stop"
sh "service docker start"
//生成dockerfile 打包
sh "echo FROM openjdk:8u312-oracle >Dockerfile"
sh "echo COPY ./target/*.jar /app.jar >>Dockerfile"
//程序入口
sh 'echo ENTRYPOINT ' + env.entrypoint + ' >>Dockerfile'
//打包
image = docker.build "${env.appName}:${env.BUILD_TAG}"
//登陆私服 引用密钥
docker.withRegistry("http://nexus3:8082/repository/docker-dram/", "f65db64b-5f08-4c24-b39a-bf9227e37f74") {
//推送镜像
image.push(env.BUILD_TAG)
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
上次更新: 10/23/2024