部署流程:
1、本地进行容器化镜像部署打包
2、本地推送镜像到镜像仓库
3、容器编排管理平台部署(devops)
首先需要在全局项目中添加打包镜像的全局变量
<docker.image.prefix>xdclass-cloud</docker.image.prefix>
在每个微服务中添加构建镜像的脚本
<build>
<!-- 打包的名称-->
<finalName>alibaba-cloud-coupon</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<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>
dockerfile镜像文件的编写
#FROM adoptopenjdk/openjdk8:ubi
FROM adoptopenjdk/openjdk8:jre8-nightly
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
打包jar包:
# 打包user 模块
cd class-user-service # 进入该模块
mvn install # 打包成对应的jar包
ls -lh 获取对应的jar包目录
构建镜像的时候尽量使用jre,不需要使用jdk,因为jre是java的运行环境,只是含有必须的环境变量,而jdk含有很多包,占用内存更大
镜像打包步骤:
1、在聚合项目这一层 mvn install 构建项目
2、进入各个子模块
mvn install -Dmaven.test.skip=true dockerfile:build
然后可以通过docker images来查看构建成功的镜像
最后可以通过:
docker run --name xdclass-coupon -d -p 9002:9002 ID
来运行各个微服务模块
这种方式与在linux系统中运行redis、nacos等是一样的