Docker-compose 部署SpringCloud微服务步骤及遇到的问题

2 篇文章 0 订阅
2 篇文章 0 订阅

部署环境

CenterOS 7
Docker version 1.13.1, build 7d71120/1.13.1

1. 安装docker-compose

参考视频

黑马程序员 第58节参考文件在评论的下方

安装完成版本如下

[root@raw microservice_bash]# docker-compose -v
docker-compose version 1.29.1, build c34c88b2

2. 开始部署

在这里插入图片描述

1. 发生报错

[root@raw microservice_bash]# docker-compose up -d
Building system
unknown flag: --iidfile
See 'docker build --help'.
ERROR: Service 'system' failed to build : Build failed

2. 解决办法 修改docker-compose 版本

2.1 直接替换源文件
下载方式
  1. https://pan.baidu.com/s/1cxuly3dRoZ8BgVklmxfriQ 密码:rcqi
    修改文件名称为 docker-compose

  2. 删除参考视频中的文件
    在这里插入图片描述

  3. 重新上传授权
    在这里插入图片描述

  4. 查看版本

[root@raw microservice_bash]# docker-compose -v
docker-compose version 1.26.2, build eefe0d31

3. 继续部署

在这里插入图片描述

4. 如果你按照这个步骤还是报错的话那可能就是语法错误了

可以回复你的报错 我帮你看看

3. 查看状态

在这里插入图片描述### 进入容器查看日志(看你自己有没有配)

[root@raw microservice_bash]# docker exec -it 0f4a41b99275 /bin/sh
/ # ls
bin      dev      etc      home     lib      linuxrc  logs     media    mnt      proc     root     run      sbin     srv      sys      tmp      usr      var

4. 测试接口

4.1 其他一切正常 发现文件导出接口发生报错

报错内容如下

java.lang.NullPointerException: null
        at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
        at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
        at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
        at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
        at sun.font.SunFontManager$2.run(SunFontManager.java:431)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.font.SunFontManager.<init>(SunFontManager.java:376)
        at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
        at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at java.lang.Class.newInstance(Class.java:442)
        at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
        at java.awt.Font.getFont2D(Font.java:491)
        at java.awt.Font.canDisplayUpTo(Font.java:2060)
        at java.awt.font.TextLayout.singleFont(TextLayout.java:470)
        at java.awt.font.TextLayout.<init>(TextLayout.java:531)
        at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:273)
        at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:248)
        at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:233)
        at org.apache.poi.hssf.usermodel.HSSFSheet.autoSizeColumn(HSSFSheet.java:2220)
        at org.apache.poi.hssf.usermodel.HSSFSheet.autoSizeColumn(HSSFSheet.java:2202)
        at cn.hutool.poi.excel.ExcelWriter.autoSizeColumn(ExcelWriter.java:256)
        at cn.hutool.poi.excel.ExcelWriter.autoSizeColumnAll(ExcelWriter.java:242)
        at com.microservice.common.utils.excel.ExcelUtils.downloadData(ExcelUtils.java:81)
        at 

4.2 解决办法

参考文档
https://www.cnblogs.com/pxblog/p/15189127.html
修改需要文件导出的项目的Dockerfile
将· FROM java:8-alpine 修改为 FROM frolvlad/alpine-java:jdk8-slim
在这里插入图片描述
重新部署

[root@raw microservice_bash]# docker-compose up -d
Building system
Step 1/3 : FROM frolvlad/alpine-java:jdk8-slim
Trying to pull repository docker.io/frolvlad/alpine-java ... 
jdk8-slim: Pulling from docker.io/frolvlad/alpine-java
6c40cc604d8e: Pull complete
1e2704e84e24: Pull complete
09525ade415b: Pull complete
Digest: sha256:b2b04c2a3ae4a9ec317cd9b07416beb831302ec8822da130f4e649a6ceff783

这个时候我们继续使用导出接口就不会发生报错了

其他配置

docker 限制启动的jar项目的运行内存

很多小伙伴都是使用vmware运行的服务 内存的话可能只有1 2G 这时候要是全力运行的话 内存就爆啦(俺也一样) 使用以下方式进行限制内存运行

  1. 方式一:
    修改Dockerfile 文件 加入以下内容 -Xms300m -Xmx512m
    -Xmx 表示JVM最大的内存
    -Xms 表示JVM初始内存
    ENTRYPOINT java -Xms300m -Xmx512m -jar /tmp/app.jar
  2. 方式二:
    待完善及测试
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值