spring boot 2.2.* 项目搭建 docker 部署项目 错误锦集

12 篇文章 0 订阅
8 篇文章 0 订阅

spring boot 2.2.* 项目搭建 docker 部署项目 错误锦集 用于快速查找原因:

1 问题原因,没有启动 RabbitMQ 查找不到端口
log 中输出了 :5672 端口的字样:


```java
2020-02-20 08:17:02.539 ERROR 11288 --- [gistrationTask1] o.s.s.s.TaskUtils$LoggingErrorHandler    : Unexpected error occurred in scheduled task

java.lang.IllegalStateException: couldn't determine local port. Please set spring.boot.admin.client.instance.service-base-url.
	at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getLocalServerPort(DefaultApplicationFactory.java:192) ~[spring-boot-admin-client-2.2.2.jar:2.2.2]
	at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getServiceBaseUrl(DefaultApplicationFactory.java:104) ~[spring-boot-admin-client-2.2.2.jar:2.2.2]
	at de.codecentric.boot.admin.client.registration.ServletApplicationFactory.getServiceUrl(ServletApplicationFactory.java:63) ~[spring-boot-admin-client-2.2.2.jar:2.2.2]
	at de.codecentric.boot.admin.client.registration.ServletApplicationFactory.getManagementBaseUrl(ServletApplicationFactory.java:76) ~[spring-boot-admin-client-2.2.2.jar:2.2.2]
	at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getHealthUrl(DefaultApplicationFactory.java:154) ~[spring-boot-admin-client-2.2.2.jar:2.2.2]
	at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.createApplication(DefaultApplicationFactory.java:80) ~[spring-boot-admin-client-2.2.2.jar:2.2.2]
	at de.codecentric.boot.admin.client.registration.ApplicationRegistrator.register(ApplicationRegistrator.java:58) ~[spring-boot-admin-client-2.2.2.jar:2.2.2]
	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_101]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_101]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_101]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_101]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]

2020-02-20 08:17:07.893  INFO 11288 --- [           main] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [192.168.8.5:5672]



**2  问题2 配置文件没有指定 rabbitmq的配置信息无法连接到 rabbitmq的地址:**
在配置文件中配置:

指定 rabbitmq 地址用户名密码以及端口号。

```java
  rabbitmq:
    host: 192.168.8.5
    port: 5672
    username: guest
    password: guest

2020-02-20 09:17:14.864 WARN 17884 — [nio-9003-exec-1] o.s.b.a.amqp.RabbitHealthIndicator : Rabbit health check failed

org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect
at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:61) ~[spring-rabbit-2.2.3.RELEASE.jar:2.2.3.RELEASE]
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:510) ~[spring-rabbit-2.2.3.RELEASE.jar:2.2.3.RELEASE]
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:751) ~[spring-rabbit-2.2.3.RELEASE.jar:2.2.3.RELEASE]
at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:214) ~[spring-rabbit-2.2.3.RELEASE.jar:2.2.3.RELEASE]
at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2095) ~[spring-rabbit-2.2.3.RELEASE.jar:2.2.3.RELEASE]
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2068) ~[spring-rabbit-2.2.3.RELEASE.jar:2.2.3.RELEASE]
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2048) ~[spring-rabbit-2.2.3.RELEASE.jar:2.2.3.RELEASE]
at org.springframework.boot.actuate.amqp.RabbitHealthIndicator.getVersion(RabbitHealthIndicator.java:49) ~[spring-boot-actuator-2.2.4.RELEASE.jar:2.2.4.RELEASE]
at org.springframework.boot.actuate.amqp.RabbitHealthIndicator.doHealthCheck(RabbitHealthIndicator.java:44) ~[spring-boot-actuator-2.2.4.RELEASE.jar:2.2.4.RELEASE]
at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:82) ~[spring-boot-actuator-2.2.4.RELEASE.jar:2.2.4.RELEASE]
at org.springframework.boot.actuate.health.HealthIndicator.getHealth(HealthIndicator.java:37) [spring-boot-actuator-2.2.4.RELEASE.jar:2.2.4.RELEASE]

3 拷贝 项目的 jar 文件到 centos 的 /home/docker/ 目录中。如果没有创建。
编写 docker 的配置文件:

这里注意。我们要求项目的.jar文件 名称必须为小写。
否则提示:
如下:
[root@localhost docker]# docker build -t spring_boot_admin-0.0.1-SNAPSHOT .
invalid argument “spring_boot_admin-0.0.1-SNAPSHOT” for “-t, --tag” flag: invalid reference format: repository name must be lowercase

#获取base image
FROM adoptopenjdk/openjdk8:latest 
#类似于执行 linux指令
RUN mkdir /opt/app  
#类似于linux copy指令
COPY 项目的文件要求名称小写.jar /opt/app/       
#对外端口
EXPOSE 8080
#执行命令 java -jar /opt/app/项目的文件要求名称小写.jar
CMD ["java", "-jar", "/opt/app/项目的文件要求名称小写.jar"] 

注意 后面一个 . 就是当前的路径。
否则会提示:

[root@localhost docker]# docker build -t spring_boot_eureka-0.0.1
“docker build” requires exactly 1 argument.
See ‘docker build --help’.

Usage: docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

执行:

docker build -t spring_boot_eureka-0.0.1 .

在这里插入图片描述

docker image ls

在这里插入图片描述

docker  run  -it   -p 9000:9000  -d spring_boot_eureka-0.0.1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值