部署 docker 镜像参数优化

This commit is contained in:
Jack 2025-08-10 13:17:50 +08:00
parent 8569ff08a2
commit 94f95d1dcd
2 changed files with 112 additions and 22 deletions

74
.dockerignore Normal file
View File

@ -0,0 +1,74 @@
# 版本控制相关不打包Git元数据
.git
.gitignore
.gitattributes
.hg
.svn
.gitmodules
# IDE 配置文件避免IDE配置污染镜像
.idea/
*.iml
*.iws
*.ipr
.vscode/
*.sublime-*
.gradle/
build/
# 构建产物仅保留最终JAR排除中间产物
target/classes/
target/test-classes/
target/maven-status/
target/generated-sources/
target/generated-test-sources/
!target/*.jar # 例外保留打包好的JAR包
!target/*.war # 若使用WAR打包
# 本地配置文件(防止开发环境配置泄露到生产镜像)
*.properties
*.yml
*.yaml
!src/main/resources/application-prod.yml # 例外:保留生产环境配置
!src/main/resources/bootstrap-prod.yml
# 日志和临时文件
logs/
*.log
*.tmp
*.bak
tmp/
temp/
# 文档和说明文件(减小镜像体积)
*.md
*.txt
*.docx
*.pdf
docs/
examples/
README*
CHANGELOG*
# 敏感信息文件
*.pem
*.key
*.cert
*.pfx
*.secret
*.env
*.local
# 脚本文件(运行镜像不需要源脚本)
*.sh
*.bat
*.py
!docker-entrypoint.sh # 例外:若有自定义启动脚本则保留
# 其他无关文件
.DS_Store
Thumbs.db
*.zip
*.tar.gz
*.tar
*.gz

60
pom.xml
View File

@ -326,21 +326,11 @@
<mysql.user>web_dev</mysql.user>
<mysql.pwd>Abc654321$^</mysql.pwd>
<mysql.driver>com.mysql.cj.jdbc.Driver</mysql.driver>
<!-- <mysql.host>159.75.249.163</mysql.host>-->
<!-- <mysql.port>3306</mysql.port>-->
<!-- <mysql.db>mall_prod</mysql.db>-->
<!-- <mysql.user>root</mysql.user>-->
<!-- <mysql.pwd>J0XivNvAcR14}pA6Cysm.E17</mysql.pwd>-->
<!-- <mysql.driver>com.mysql.cj.jdbc.Driver</mysql.driver>-->
<!-- redis配置 -->
<redis.host>114.132.210.208</redis.host>
<redis.database>15</redis.database>
<redis.port>6379</redis.port>
<redis.password>Gpff654321</redis.password>
<!-- <redis.host>159.75.249.163</redis.host>-->
<!-- <redis.database>15</redis.database>-->
<!-- <redis.port>6480</redis.port>-->
<!-- <redis.password>hwe9EgqgMAwY</redis.password>-->
<!-- rabbitmq配置 -->
<rabbitmq.host>114.132.210.208</rabbitmq.host>
<rabbitmq.port>5672</rabbitmq.port>
@ -480,17 +470,12 @@
<!-- sentinel配置 -->
<sentinel.transport.dashboard>172.16.0.11:8718</sentinel.transport.dashboard>
<!-- mysql配置 -->
<mysql.host>172.16.0.11</mysql.host>
<mysql.host>172.16.0.9</mysql.host>
<mysql.port>13306</mysql.port>
<mysql.db>mall_prod</mysql.db>
<mysql.user>webprod</mysql.user>
<mysql.pwd>J1XivNvAcR21}pA6Cysm.E29</mysql.pwd>
<mysql.driver>com.mysql.cj.jdbc.Driver</mysql.driver>
<!-- redis5配置 -->
<!-- <redis.host>172.16.0.11</redis.host>-->
<!-- <redis.database>0</redis.database>-->
<!-- <redis.port>6379</redis.port>-->
<!-- <redis.password>aIqoc08IeuKBd4yl</redis.password>-->
<!-- redis7配置 -->
<redis.host>172.16.0.11</redis.host>
<redis.database>0</redis.database>
@ -515,17 +500,28 @@
</activation>
</profile>
</profiles>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
<!-- 排除开发时的配置文件 -->
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
@ -550,12 +546,30 @@
<!-- Docker 远程管理地址-->
<dockerHost>${docker.host}</dockerHost>
<!--定义基础镜像-->
<baseImage>java:8</baseImage>
<!-- <baseImage>java:8</baseImage>-->
<!-- <baseImage>openjdk:8-jre</baseImage>-->
<baseImage>openjdk:8-jre-alpine</baseImage>
<!--定义容器启动命令,注意不能换行-->
<entryPoint>["java", "-jar", "-Xms256m", "-Xmx512m", "-XX:PermSize=64M", "-XX:MaxPermSize=512M", "-Dspring.profiles.active=${spring.profile}", "-Duser.timezone=Asia/Shanghai", "/${project.build.finalName}.jar"]
<entryPoint>["java", "-jar", "-Xms128m", "-Xmx512m", "-XX:MetaspaceSize=128m", "-XX:MaxMetaspaceSize=256m", "-XX:+UseContainerSupport", "-XX:MaxRAMPercentage=60.0", "-XX:+UseSerialGC", "-XX:MinHeapFreeRatio=40", "-XX:MaxHeapFreeRatio=60", "-Dspring.profiles.active=${spring.profile}", "-Duser.timezone=Asia/Shanghai", "/${project.build.finalName}.jar"]
</entryPoint>
<!--推送镜像仓库校验安全证书,无安全证书无法推送-->
<dockerCertPath>${docker.ca}</dockerCertPath>
<!-- 添加清理命令来过滤无用文件 -->
<runs>
<!-- 清理 APK 缓存Alpine 镜像) -->
<run>rm -rf /var/cache/apk/*</run>
<!-- 删除 Maven 构建过程中产生的临时文件 -->
<run>rm -rf /root/.m2</run>
<!-- 删除可能存在的日志文件 -->
<run>find / -name "*.log" -type f -delete 2>/dev/null || true</run>
<!-- 删除测试相关文件 -->
<run>find / -name "*test*" -type f -delete 2>/dev/null || true</run>
<!-- 删除文档文件 -->
<run>find / -name "*.md" -type f -delete 2>/dev/null || true</run>
</runs>
<resources>
<resource>
<targetPath>/</targetPath>
@ -565,6 +579,8 @@
</resources>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>