天天看点

小滴课堂-学习笔记:(17)【高级篇】新版 JDK11+AlibabaCloud+Docker整合打包镜像推送

小滴课堂-学习笔记:(17)【高级篇】新版 JDK11+AlibabaCloud+Docker整合打包镜像推送

 愿景:"让编程不再难学,让技术与生活更加有趣"

更多架构课程请访问 xdclass.net

目录

第1集 新版AlibabaCloud微服务本地镜像打包配置讲解

第2集 镜像打包脚本Dockerfile介绍和【新版JDK11】整合

第3集 AlibabaCloud-视频服务-订单服务Docker镜像打包

第4集 本地镜像推送阿里云私有镜像仓库

干货文档

第1集 新版AlibabaCloud微服务本地镜像打包配置讲解

简介:微服务Docker镜像打包讲解

  • 官方文档:https://spring.io/guides/gs/spring-boot-docker/
  • 父项目怎么springboot版本依赖
<properties>
        <java.version>11</java.version>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <spring.boot.version>2.3.3.RELEASE</spring.boot.version>
  </properties>
           
  • 每个子模块项目添加依赖
//配置文件增加
<docker.image.prefix>xdclass</docker.image.prefix>
​
​
<build>
        <finalName>alibaba-cloud-gateway</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
​
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                </configuration>
            </plugin>
​
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.10</version>
                <configuration>
                    <repository>${docker.image.prefix}/${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>
           
  • Spotify 的 docker-maven-plugin 插件是用maven插件方式构建docker镜像的。
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}

           

第2集 镜像打包脚本Dockerfile介绍和【新版JDK11】整合

简介:微服务Docker镜像打包整合JDK11

  • 创建Dockerfile,默认是根目录,(可以修改为src/main/docker/Dockerfile,如果修则需要制定路径)
  • 什么是Dockerfile
    • 由一系列命令和参数构成的脚本,这些命令应用于基础镜像, 最终创建一个新的镜像
    FROM  adoptopenjdk/openjdk11:ubi
    VOLUME /tmp
    ARG JAR_FILE
    COPY ${JAR_FILE} app.jar
    ENTRYPOINT ["java","-jar","/app.jar"]
    ​
    ​
    FROM <image>:<tag> 需要一个基础镜像,可以是公共的或者是私有的,
    后续构建会基于此镜像,如果同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令
          
    VOLUME  配置一个具有持久化功能的目录,主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。
    /tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录 
    ​
    ARG  设置编译镜像时加入的参数, JAR_FILE 是设置容器的环境变量(maven里面配置的)
    COPY : 只支持将本地文件复制到容器 ,还有个ADD更强大但复杂点
    ENTRYPOINT 容器启动时执行的命令
    ​
    EXPOSE 8080 暴露镜像端口
               
  • 构建镜像( 去到子模块pom文件下)
    mvn install -Dmaven.test.skip=true dockerfile:build
               
  • 打包网关镜像

第3集 AlibabaCloud-视频服务-订单服务Docker镜像打包

简介:微服务Docker镜像打包视频服务和订单服务

  • 视频服务打包
  • 订单服务打包

第4集 本地镜像推送阿里云私有镜像仓库

简介:本地多个镜像推送阿里云私有镜像仓库

  • 阿里云私有镜像仓库创建
  • 网关服务
//登录
docker login --username=釉釉cxy registry.cn-shenzhen.aliyuncs.com
//打标签
docker tag 494d49ea5e78 registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-gateway:v1.0
//推送
docker push registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-gateway:v1.0
           
  • 订单服务
docker tag 06270304d1ec registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-order:v1.0
​
docker push registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-order:v1.0
           
  • 视频服务推送
docker tag 8765039e03cd registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-video:v1.0
​
docker push registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-video:v1.0

           

干货文档

小滴课堂-学习笔记:(17)【高级篇】新版 JDK11+AlibabaCloud+Docker整合打包镜像推送
小滴课堂-学习笔记:(17)【高级篇】新版 JDK11+AlibabaCloud+Docker整合打包镜像推送
小滴课堂-学习笔记:(17)【高级篇】新版 JDK11+AlibabaCloud+Docker整合打包镜像推送
小滴课堂-学习笔记:(17)【高级篇】新版 JDK11+AlibabaCloud+Docker整合打包镜像推送
小滴课堂-学习笔记:(17)【高级篇】新版 JDK11+AlibabaCloud+Docker整合打包镜像推送