第二步: 项目编译
1) 改名为 项目编译
然后把系统自带的步骤删除。
2) 添加容器
然后呢,我们增加 一个 嵌套步骤, ls
看看我们代码是什么样的。
之前我们 常规的 maven 打包的命令
mvn clean package '-Dmaven.test.skip=true'
有时候不被识别,可以加单引号来测试一下。
没问题,我们用 流水线来测试,这样拍错就容易了。
3)添加 mvn 打包命令
mvn clean package '-Dmaven.test.skip=true'
点击运行,看看效果。
设置maven 加速仓库
kubesphere 设置maven 加速仓库 :连接
第3步: 构建镜像
https://kubesphere.io/zh/learn/level_4/lesson_40/video/
先 修改 名称- 构建镜像
1) 指定容器
用docker 命令, 优先使用maven
- 添加步骤
我们先来验证一下 项目里的有没有我们上一步打包好的文件
ls hospital-manage
因为有很多微服务都要构建镜像,我们可以在构建镜像中添加 并行阶段。
我们先跑通一个,hospital-manage 测试一下,
添加 嵌套 shell
docker 命令
docker build -t hospital-manage:v1 -f hospital-manage/Dockerfile hospital-manage/
镜像名, dockerfile 所在的目录, + 工作目录。
然后运行,
有的打包工具不存在 的可以添加一下pom
<build>
<finalName>hospital-manage</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后我们添加并行阶段。添加其他的微服务的镜像构建
idea jenkinsfile 文件 (管理设置)
编辑好之后,再复制到 k8s界面
4) 推送到镜像仓库
需要登录到仓库,docker login
docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:latest
添加阿里云镜像仓库 凭证
DOCKER_PWD_VAR
DOCKER_USER_VAR
这里我们要在添加一个 阿里云 容器仓库的凭证 ,才能使用,
添加完后,我们进入 jenkins代码中, 配置一下。
主要是 添加 一下 登录 命令
sh 'echo "$DOCKER_PWD_VAR" | docker login $REGISTRY -u "$DOCKER_USER_VAR --password-stdin'
推送镜像的代码:
stage('推送镜像') {
agent none
steps {
container('maven') {
withCredentials([usernamePassword(credentialsId : 'aliyun1' ,passwordVariable : 'DOCKER_PWD_VAR' ,usernameVariable : 'DOCKER_USER_VAR' ,)]) {
sh 'ls'
sh 'echo "$DOCKER_PWD_VAR" | docker login $REGISTRY -u "$DOCKER_USER_VAR" --password-stdin'
sh 'docker tag hospital-manage:latest $REGISTRY/$DOCKERHUB_NAMESPACE/hospital-manage:SNAPSHOT-$BUILD_NUMBER'
sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/hospital-manage:SNAPSHOT-$BUILD_NUMBER'
}
}
}
}
环境变量代码: 在jenkinsfile 最后位置
environment {
DOCKER_CREDENTIAL_ID = 'dockerhub-id'
GITHUB_CREDENTIAL_ID = 'github-id'
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
REGISTRY = 'registry.cn-hangzhou.aliyuncs.com'
DOCKERHUB_NAMESPACE = 'baimeidashu'
GITHUB_ACCOUNT = 'kubesphere'
APP_NAME = 'devops-java-sample'
{#more-14714}
//docker tag service-oss:v1 registry.cn-hangzhou.aliyuncs.com/baimeidashu/service-oss:v1
docker 登录
docker login --username=chaor*****@gmail.com registry.cn-hangzhou.aliyuncs.com
第3步:部署项目 :连接