项目部署之镜像打包与推送
你好呀,我的老朋友!我是老寇,欢迎来到老寇云平台!
话不多说,讲一讲项目部署之镜像打包与推送!
# 安装插件
<!-- 打包插件,将 Java 源代码编译为字节码(.class 文件) -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>21</source>
<target>21</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<!-- 关闭对不推荐使用的编译器选项的警告 -->
<arg>-Xlint:-options</arg>
<!-- 启用对可变参数使用的警告 -->
<arg>-Xlint:varargs</arg>
<!-- 启用对使用原始类型raw types的警告 -->
<arg>-Xlint:rawtypes</arg>
<!-- 启用对未检查的操作的警告,比如未检查的类型转换 -->
<arg>-Xlint:unchecked</arg>
<!-- 启用对使用过时 API 的警告 -->
<arg>-Xlint:deprecation</arg>
<!-- 在编译的字节码中保留方法参数的名称,这对反射或序列化框架非常有用 -->
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
<!-- 专门用于 Spring Boot 应用的打包和运行,提供打包为可执行 JAR/WAR 文件的功能,还可以在开发过程中直接运行应用 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<finalName>${project.artifactId}</finalName>
<!-- main方法的地址 只需要修改这个地址-->
<mainClass>xxx.xxx.xxx.XxxApp</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 执行Docker镜像的构建、推送和运行等操作 -->
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.45.0</version>
<configuration>
<!--Docker主机-->
<dockerHost>${docker.host}</dockerHost>
<!--Docker私库-->
<registry>${docker.registry}</registry>
<!-- 认证信息-->
<authConfig>
<push>
<username>${docker.username}</username>
<password>${docker.password}</password>
</push>
</authConfig>
<images>
<image>
<!-- 推送仓库/命名空间/仓库名称:镜像版本号-->
<name>${docker.registry}/${docker.namespace}/${project.artifactId}:${project.version}</name>
<build>
<tags>
<tag>${project.version}</tag>
</tags>
<!-- 指定dockerfile文件的位置-->
<dockerFile>${project.basedir}/Dockerfile</dockerFile>
</build>
</image>
</images>
</configuration>
</plugin>
<!-- profile对资源的操作 -->
<resources>
<!-- 打包的时候先去掉所有的配置文件 -->
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application*.yml</exclude>
<exclude>bootstrap*.yml</exclude>
<exclude>log4j2*.xml</exclude>
<exclude>*.json</exclude>
<exclude>*.properties</exclude>
</excludes>
</resource>
<!-- 添加需要包含的文件 -->
<resource>
<directory>src/main/resources</directory>
<!-- 是否替换yml或者properties里@xx@表示的maven properties属性值 -->
<filtering>true</filtering>
<!-- 在打包的时候,根据-P参数,加上需要的yml配置文件 -->
<includes>
<include>application.yml</include>
<include>application-${PROFILE-ACTIVE}.yml</include>
<include>bootstrap.yml</include>
<include>bootstrap-${PROFILE-ACTIVE}.yml</include>
<include>log4j2-${PROFILE-ACTIVE}.xml</include>
<include>init_router.json</include>
<include>log4j2.component.properties</include>
</includes>
</resource>
</resources>
</plugins>
# 注册阿里云仓库
请自行百度
# 项目打包
# 配置docker和镜像仓库
<properties>
<docker.host>tcp://127.0.0.1:2375</docker.host>
<docker.registry>registry.cn-shenzhen.aliyuncs.com</docker.registry>
<docker.namespace>koushenhai</docker.namespace>
<docker.username>username</docker.username>
<docker.password>password</docker.password>
</properties>
# 打包
# 切换环境
切换到prod环境[记得刷新maven]
# 打包项目
# nacos
mvn clean install -P prod
# 推送
# 启动docker
自行启动,不过需要注意一下,因某些原因docker暂不能用,需要科学上网才行
作者的docker镜像源
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io"
]
}
# 推送镜像
以Nacos为例
按此步骤依次打包sentinel/snail job/gateway/monitor/auth/admin/logstash
# 部署
找到项目的部署文件夹
注意:需要将如下文件夹拖到到新建文件夹
# 注意需要先启动postgresql,然后运行sql脚本,再重新启动docker
docker-compose up -d
我是老寇,我们下次再见啦!
上次更新: 11/22/2024, 4:10:36 AM