将Spring Boot Dockerized应用程序连接到MySQL Dockerized服务器
我有一个Spring Boot应用程序,在哪个部分application.yaml
是这样:
spring:
datasource:
username: ${MYSQL_USER}
password: ${MYSQL_PASSWORD}
url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/calculator?allowPublicKeyRetrieval=true&useSSL=false
initialization-mode: always
我已经使用dockerfile
构建了图像:
FROM openjdk:11
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
我正在尝试通过重要的env变量从docker-compose.yaml
到Spring Boot App Image。因此,我的docker-compose.yaml
就是这样:
version: "3"
services:
app-calculator:
container_name: calculator-container
image: dockerhub-user-id/calculator-image:latest
restart: always
depends_on:
- mysqldb
ports:
- 8080:8080
environment:
MYSQL_DATABASE: calculator
MYSQL_HOST: mysqldb
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_PORT: 3306
mysqldb:
container_name: mysqldb
image: mysql:5.7
volumes:
- C:\Users\Miljan\Desktop\dbDirectory:/var/lib/mysql
ports:
- 3307:3306
environment:
MYSQL_DATABASE: calculator
MYSQL_ROOT_PASSWORD: root
一旦我去Docker桌面并查看具有两个定义的Conainers的容器,Spring Boot应用程序告诉我:
java.sql.SQLSyntaxErrorException: Unknown database 'calculator'
我错了?
I have a Spring Boot app, in which section of application.yaml
is like this:
spring:
datasource:
username: ${MYSQL_USER}
password: ${MYSQL_PASSWORD}
url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/calculator?allowPublicKeyRetrieval=true&useSSL=false
initialization-mode: always
I've built the image by using Dockerfile
:
FROM openjdk:11
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
I'm trying to pass important env variables from docker-compose.yaml
to the Spring boot app image. So my docker-compose.yaml
is like this:
version: "3"
services:
app-calculator:
container_name: calculator-container
image: dockerhub-user-id/calculator-image:latest
restart: always
depends_on:
- mysqldb
ports:
- 8080:8080
environment:
MYSQL_DATABASE: calculator
MYSQL_HOST: mysqldb
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_PORT: 3306
mysqldb:
container_name: mysqldb
image: mysql:5.7
volumes:
- C:\Users\Miljan\Desktop\dbDirectory:/var/lib/mysql
ports:
- 3307:3306
environment:
MYSQL_DATABASE: calculator
MYSQL_ROOT_PASSWORD: root
Once I go to Docker Desktop and see the container which have two defined conainers, Spring boot app is telling me:
java.sql.SQLSyntaxErrorException: Unknown database 'calculator'
Where I'm wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论