【发布时间】:2019-05-31 05:41:25
【问题描述】:
我有两个 Spring 应用程序共享同一个 Mysql 数据库。 当我在没有 docker-compose 的情况下运行它们时,它们可以完美运行。我的主机是 Windows 10 专业版。
application.properties
server.port=8085
spring.jpa.show-sql=true
spring.jackson.serialization.write-dates-as-timestamps=false
spring.jpa.hibernate.ddl-auto=update
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306 /webDatabase?autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=my-secret-pw
Dockerfile
FROM openjdk:8-jdk-alpine
ADD target/web-spring-boot.jar web-spring-boot.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar", "web-spring-boot.jar"]
我根据其他示例创建了这个 docker-compose.yml。
version: '3'
services:
web:
build: ./web
ports:
- "8085:8085"
depends_on:
- "database"
solver:
build: ./solver
ports:
- "8095:8095"
depends_on:
- "database"
database:
image: "mysql:latest"
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
- MYSQL_DATABASE=webDatabase
healthcheck:
test: "/usr/bin/mysql --user=root --password=my-secret-pw --execute \"SHOW DATABASES;\""
interval: 10s
timeout: 20s
retries: 10
volumes:
logvolume01: {}
它不起作用。启动后只有 Mysql 容器在运行。
这是 Spring 日志的部分输出
solver_1 | 2019-01-04 22:55:15.698 WARN 1 --- [main] o.h.engine.jdbc.spi.SqlExceptionHelper:SQL 错误:0,SQLState:08S01 求解器_1 | 2019-01-04 22:55:15.698 错误 1 --- [main] o.h.engine.jdbc.spi.SqlExceptionHelper:通信链路故障 求解器_1 | 求解器_1 |最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有收到服务器发来的任何数据包。
我在配置中缺少什么? application.properties 使用 compose 运行时会被忽略吗?
【问题讨论】:
-
两个问题,你确定web Dockerfile实际上是在./web 下吗?你用什么命令来运行 docker 和 docker-compose?
-
@plumSemPy 是的,我可以看到两个春季初创企业。我正在添加部分日志。要运行它们,只需
docker runafterdocker build -
@Ritabrata 我没有看到这种关系。
标签: java mysql spring-boot docker