51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

第二步: 项目编译 + 构建镜像

第二步: 项目编译

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

  1. 添加步骤

我们先来验证一下 项目里的有没有我们上一步打包好的文件

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步:部署项目 :连接

赞(2)
未经允许不得转载:工具盒子 » 第二步: 项目编译 + 构建镜像