ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker部署微服务遇到问题总结

2022-01-13 11:33:04  阅读:195  来源: 互联网

标签:总结 lib 部署 maven XX sh Docker com permissions


1、执行通过maven的spring-boot-maven-plugin插件打包出的jar太大,需要对其进行瘦身分离出依赖的jar

   maven配置如下:

 1 <build>
 2         <finalName>${project.artifactId}</finalName>
 3         <plugins>
 4             <plugin>
 5                 <groupId>org.springframework.boot</groupId>
 6                 <artifactId>spring-boot-maven-plugin</artifactId>
 7                 <executions>
 8                     <execution>
 9                         <goals>
10                             <goal>repackage</goal>
11                         </goals>
12                     </execution>
13                 </executions>
14                 <configuration>
15                     <mainClass>com.permissions.third.PermissionsThirdApplication</mainClass>
16                     <layout>ZIP</layout>
              <!--将自己写的子模块的依赖打入jar中 --> 17 <includes> 18 <include> 19 <groupId>com.permissions</groupId> 20 <artifactId>permissions-common-datasource</artifactId> 21 </include> 22 <include> 23 <groupId>com.permissions</groupId> 24 <artifactId>permissions-common-log</artifactId> 25 </include> 26 <include> 27 <groupId>com.permissions</groupId> 28 <artifactId>permissions-common-swagger</artifactId> 29 </include> 30 </includes> 31 </configuration> 32 </plugin> 33 <!--拷贝依赖到jar外面的lib目录--> 34 <plugin> 35 <groupId>org.apache.maven.plugins</groupId> 36 <artifactId>maven-dependency-plugin</artifactId> 37 <executions> 38 <execution> 39 <id>copy-lib</id> 40 <phase>package</phase> 41 <goals> 42 <goal>copy-dependencies</goal> 43 </goals> 44 <configuration> 45 <outputDirectory>target/lib</outputDirectory> 46 <!--不重写lib 如果存在lib不处理--> 47 <overWriteIfNewer>false</overWriteIfNewer> 48 <includeScope>compile</includeScope> 49 </configuration> 50 </execution> 51 </executions> 52 </plugin> 53 </plugins> 54 </build>

2、每个模块生成的lib文件夹下的依赖jar不能放到一个文件夹下混在一起,必须要每个模块的docker容器分别挂载一个目录存放每个模块生成的lib

3、当需要docker在run之后执行制定shell脚本时,默认docker是没有执行shell的bash环境的,需要在Dockerfile中添加才行(Dockfile已做数据敏感处理仅做参考)

 1 FROM abc/jdk11:latest
 2 
 3 LABEL sub_sys_code=scdq le=某某某 clustersoft=deployment caas_user=abc
 4 VOLUME ["/home/lib"]
 5 # 饱和内存使用总量 = 最大堆内存大小(2048M) + 最大元空间大小(512M) + 最大直接内存大小(512M) = 3072M,生产部署值应为压测指标的1.5-2倍
 6 ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
 7     PINGAN_SLEEP=0 \
 8     TZ=Asia/Shanghai \
 9     JAVA_ARGS=" -Dloader.path=/home/lib -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF-8 -Dclient.encoding.override=UTF-8 -Duser.timezone=${TZ}" \
10     JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/scdq -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:MaxDirectMemorySize=512m -Xms2048m -Xmx2048m -Xmn256m -Xss256k -XX:SurvivorRatio=8"
11 WORKDIR /workspace/
12 ADD . .
13 
14 EXPOSE 9200
15 
16 RUN chmod 755 *.sh && chown -R 1000 *.sh
17 
18 ENTRYPOINT ["/bin/sh","./startup.sh"]

在上面的ENTRYPOINT 中加入"/bin/sh"

4、编写Dockerfile时注意精简版的jdk镜像会导致一些问题,比如验证码生成会因为jdk不全导致出现异常,所以实在不行建议FROM参数设置JDK时使用完整版jdk不要使用精简版

5、nginx配置转发时要注意location后的路径和proxy_pass后的路径,这两个路径最后都要注意保持斜杠/结尾,否则配置会不生效

 

标签:总结,lib,部署,maven,XX,sh,Docker,com,permissions
来源: https://www.cnblogs.com/Yoona520/p/15796854.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有