【发布时间】:2020-01-19 05:05:07
【问题描述】:
如题:
Caused by: java.net.ConnectException: Connection refused (Connection refused)
前段时间这对我有用,但不幸的是现在不行。 我执行的脚本包含:
mvn clean install -> docker-compose build -> docker-compose up
Dockerfile:
FROM openjdk:8
ADD target/grades.jar grades.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "grades.jar"]
docker-compose.yaml
version: '3'
services:
mysql-standalone:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=grades
- MYSQL_USER=root
- MYSQL_PASSWORD=password
ports:
- "33061:3306"
volumes:
- /data/mysql
grades:
image: grades
build:
context: ./
dockerfile: Dockerfile
depends_on:
- mysql-standalone
ports:
- 8080:8080
volumes:
- /data/grades
和application.properties:
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DB:aws_eb_db}
spring.datasource.username=${MYSQL_USERNAME:root}
spring.datasource.password=${MYSQL_PASSWORD:password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
【问题讨论】:
-
试试这个:
spring.datasource.url=jdbc:mysql://mysql-standalone:3306/gradeslocalhost 将不起作用,因为它引用了等级容器本身 -
为什么会这样?
-
您需要使用 compose 中定义的服务名称进行连接
标签: mysql spring-boot docker