我在Spring Boot应用程序中运行docker-compose.yml时遇到问题。当我运行此命令(docker-compose up-d)时,我在映像部分遇到了问题。
我试图解决这个问题,但我做不到。我怎样才能修复它?
这是我的问题如下所示。
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
这是我的项目:我的项目
这是我的docker compose。yml如下所示。
version: '3.8'
services:
logstash:
image: docker.elastic.co/logstash/logstash:7.15.2
user: root
command: -f /etc/logstash/conf.d/
volumes:
- ./logstash/:/etc/logstash/conf.d/
ports:
- "5000:5000"
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
depends_on:
- elasticsearch
kibana:
image: docker.elastic.co/kibana/kibana:7.15.2
user: root
volumes:
- ./kibana/:/usr/share/kibana/config/
ports:
- "5601:5601"
depends_on:
- elasticsearch
entrypoint: ["./bin/kibana", "--allow-root"]
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.2
user: root
volumes:
- ./elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
app:
image: 'springbootelk:latest'
build:
context: .
container_name: SpringBootElk
depends_on:
- db
- logstash
ports:
- '8077:8077'
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/springbootexample?useSSL=false&serverTimezone=Turkey
- SPRING_DATASOURCE_USERNAME=springexample
- SPRING_DATASOURCE_PASSWORD=111111
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
db:
container_name: mysql-latest
image: 'mysql:latest'
ports:
- "3306:3306"
restart: always
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
volumes:
- db-data:/var/lib/mysql
# Volumes
volumes:
db-data:
有几个问题,为什么它不起作用<第一件事-您的测试设置不正确。应用程序尝试在测试阶段连接到数据库。但是在测试阶段,还没有任何正在运行的容器。您可以正确设置它,或者从测试目录中删除MainApplicationTests类,或者通过关闭测试执行,只需添加Dmaven即可。测验跳过Dockerfile中的mvnw包命令。在这之后,你的形象将得到正确的塑造
其次,您需要允许对应用程序进行公钥检索。为此,您可以将allowPublicKeyRetrieval=true添加到jdbc url中。您可以在这里阅读更多信息:连接Java-MySQL:不允许公钥检索
这些步骤将允许您的应用程序启动(至少可以解决数据库连接问题)。但是,我发现了另一个问题。您在应用程序配置中将上下文路径设置为等于api。您还为PersonController添加了请求映射(“/api”)。要访问人员列表,您需要使用以下url:<代码>http://localhost:8077/api/api/persons
。也许,这不是你想要的。要修复它,您可以将其从任何位置移除。
我的程序编译了所有内容,我没有出错,但我实际上期望tomcat应该永久在端口8080上。输出中也没有Spring。在另一个项目中,我做的一切都很好。谢谢你帮助我。 我的父母: 我的tarter.class: 我的Starter-Pom: 控制台输出: 然后什么都不会发生了。谢谢你的帮助。
已经应用了设备更改、电缆更改、Android studio重启、系统重启、adb重启和杀机等都没有帮助。我在sdk tools文件夹中的一个日志文件给出了这样的输出: !条目org.eclipse.osgi 4 0 201 5-09-10 00:38:33.745!消息应用程序错误!堆栈1 java.io.ioException:文件夹“C:\users\mehran%20khan.android
我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题
我正在使用一个spring启动应用程序,它运行我的src/main/resources/config/application。yml。 当我通过以下方式运行测试用例时: 测试代码仍在运行我的应用程序。要加载属性的yml文件。我想知道是否有可能再运行一个*。运行测试用例时的yml文件。
我有一个cucumber测试: 这是一个测试,它不是在测试文件夹中定义的,而是一个seprate文件夹(作为源集,其他人创建了这个结构)。 源集(测试所在)的gradle配置如下: 看看gradle文件,有三件事, 有一个源集定义为 编译CLassPath, runTimeClassPath, srcDir已被定义为相同的 甚至resources.srcDir也在设置中(我有应用ymls) 我已经