I am currently trying to find a unique solution for running my project locally and remotely on a CI-pipeline. On git I got everything working by setting the bean dataSource url of the applicationContext.xml as shown in the following snipped:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://mysql:3306/project" />
...
</bean>
However, I was not able to configure my docker-compose file in a way that I can use the same url as shown previously. Instead it still requires the localhost jdbc:mysql://localhost:3306/project
I guess I need to add some additional networking fields to my docker-compose file, so that I can use jdbc:mysql://mysql:3306/project
locally as well, but I could not figure it out by now.
My current docker-compose.yml to be modified:
version: '3.3'
services:
tomcat:
image: tomcat:9-jre11
volumes:
- ./target:/usr/local/tomcat/webapps
ports:
- "8080:8080"
mysql:
image: mysql:latest
environment:
MYSQL_USER: mysql_user
MYSQL_PASSWORD: mysql_password
MYSQL_ROOT_PASSWORD: mysql_root_password
MYSQL_DATABASE: mysql_database
ports:
- "3306:3306"
Running the project locally leads to the following error message if I use the mysql url instead of the local one:
Caused by: java.net.UnknownHostException: mysql