将Spring Boot应用程序与Dockerized MySQL数据库连接

时间:2018-10-29 16:06:17

标签: java mysql docker spring-boot

首先,我已经泊坞化了一个数据源,并将其链接到网络。

  1. 在此处遵循准则:https://github.com/SimonGirardSfeir/MySQL-Docker

  2. 创建网络 码头工人网络创建-d桥mybridge

  3. 将数据库映像链接到网络 docker run -d --net = mybridge --name = db docker-mysql

  4. 我去外壳程序中的数据库中添加适当的属性(用户名,密码,数据库名称),就可以了。

现在,完全可以。

现在,我正在尝试将具有以下属性的Spring Boot应用程序链接

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://db:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

Dockerfile如下:

# Start with a base image containing Java runtime
FROM java:8-jre

# Add a volume pointing to /tmp
VOLUME /tmp

# Make port 8080 available to the world outside this container
EXPOSE 8080

# The application's jar file
ARG JAR_FILE=build/libs/mysql-0.0.1-SNAPSHOT.jar

# Add the application's jar to the container
ADD ${JAR_FILE} mysql.jar


RUN apt-get update
RUN apt-get install mysql-client -y
RUN apt-get install libmysql-java -y

# Run the jar file
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/mysql.jar"]
  1. 我是从Dockerfile构建的,没关系。

  2. 因此,我启动以下命令 docker运行--net = mybridge --name = app myappimage

但是,该程序无法连接到数据库,并且日志显示:

  

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:   通讯链接失败

我不知道问题出在哪里。

我的来源是: https://docs.docker.com/v17.03/engine/tutorials/networkingcontainers/#add-containers-to-a-network https://spring.io/guides/gs/accessing-data-mysql/ https://github.com/moby/moby/issues/25562

0 个答案:

没有答案