I have a Spring Boot application which connects to a MariaDB database. I am trying to run docker-compose for those two services but I get the following error:
java.sql.SQLNonTransientConnectionException: Socket fail to connect to host:address=(host=maria_db)(port=10000)
(type=primary). maria_db
...
Caused by: java.net.UnknownHostException: maria_db
Here is my docker-compose.yml file:
version: "3.7"
services:
api_service:
build: .
restart: always
ports:
- "8080:8080"
depends_on:
- maria_db
maria_db:
image: "mariadb:10.5.8"
restart: always
ports:
- "10000:3306"
environment:
MYSQL_DATABASE: app_db
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_ROOT_PASSWORD: examplepass
Here is my Dockerfile for the Spring app:
FROM openjdk:17-oracle
COPY target/app-0.0.1.jar app-0.0.1.jar
RUN ["java","-jar","/app-0.0.1.jar"]
Here is my application.properties file:
spring.datasource.url=jdbc:mariadb://maria_db:10000/app_db
spring.datasource.username=exampleuser
spring.datasource.password=examplepass
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
springdoc.api-docs.path = /javainuse-openapi
I am new to docker, but every resource on the topic I have found so far seems to suggest this setup. What am I doing wrong?
I am using:
- Spring Boot 3.0.2,
- Java 17,
- Docker Engine v20.10.22 (Docker Windows)