当前位置: 首页 > 知识库问答 >
问题:

为docker和application is JDBC连接设置不同的配置文件

丰佐
2023-03-14

我想为docker和application is JDBC Connection设置不同的配置文件,我使用了connection.java、application.properties&docker-compose文件中的mysql配置。

connection.java

    private Connection createConnection() throws SQLException {
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/databaseName?autoReconnect=true&useSSL=false", "root", "root");
        return connection;
    }

application.properties

spring.datasource.username=root
spring.datasource.password=root
spring.jpa.show-sql=true
server.port=8080
#Whether to initialize the schema on startup.
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

docker-compose.yml

version: '3'

services:
  docker-mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=databaseName
      - MYSQL_USER=root
      - MYSQL_PASSWORD=root
    ports:
      - 3307:3306

    myApp:
    image: myApp:latest
    ports:
      - 8080:8080
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://localhost/databaseName?autoReconnect=true&useSSL=false
    depends_on:
       - docker-mysql

我想在application.properties&docker-compose.yml中使用以下配置文件

1)  SPRING_DATASOURCE_URL: jdbc:mysql://docker-mysql/databaseName?autoReconnect=true&useSSL=false

对于JDBC连接1)JDBC:mysql://localhost/databasename?autoreconnect=true&usessl=false“,”root“,”root“2)JDBC:mysql://docker-mysql/databasename?autoreconnect=true&usessl=false”,“root”,“root”

请指导我如何设置这两个配置文件,以便我的应用程序和docker自动采用配置文件并完美工作

共有1个答案

汪典
2023-03-14

在您的application.properties文件中添加spring.datasource.url=jdbc:mysql:/localhost/databasename?autoreconnect=true&usessl=false

创建另一个名为application-docker.properties的文件,并添加spring.datasource.url=jdbc:mysql:/docker-mysql/databasename?autoreconnect=true&usessl=false

然后将spring_profiles_active=docker添加到您的docker组合文件中的环境下

 类似资料:
  • Hyperledger Composer使用连接配置文件连接到运行时。 创建连接配置文件 1.创建一个名为connection.json的新文件,其中包含Hyperledger Fabric v1.0的以下信息。} 为Hyperledger Fabric v1.0创建连接配置文件,使用以下格式: { "type": "hlfv1", "orderers":

  • 问题内容: 在我的application.yml中,我得到了: 还有其他一些使用不同的配置文件。启动应用程序时,我得到以下信息: 如果我只是将log4j2.xml放在已分析的文件旁边,则它可以工作。所以我认为这是我错过依赖关系的原因,或者使用log4j2无法实现? 问题答案: 在我这边,我正在使用属性文件而不是Yaml文件。我需要两个日志文件:一个将所有内容记录到控制台,另一个用于记录文件。因此,

  • 我试图找出在应用程序中设置连接字符串的最干净/最简单的方法。来自ci/管道的my spring boot应用程序中的属性文件。我们正在使用gitlab。我们正在部署两个服务实例,等等。我也几乎没有/没有yaml经验。 所以当前application.properties有一个值/属性:spring.data.mongodb.uri=mongoDB://......... 我们的。gitlab-ci

  • : : 这是行不通的,因为链接的容器没有配置在同一个文件中。但有没有办法实现类似的事情呢? 我想有一个更干净的设置,以设置我的生产环境,使我能够重新启动只有相关的位,改变,而不是所有的一次。

  • 我试图使用构建一个Spring Cloud应用程序,该应用程序利用托管在GitLab上的存储库来存储配置详细信息。我可以在本地机器上运行它。然而,由于需要SSH钥匙,我正在努力将其放置在容器中。例如,配置服务器的application.properties文件: 我提到了这个问题;但是,我使用的是docker compose文件。 使用compose文件时,是否仍然可以从docker容器访问私有g

  • 我正在使用处理。我有大约5个。因此,我将spring cloud config server配置为集中配置。它工作得很好。 配置服务器配置 spring.cloud.config.server.native.search-locations=classpath://common-config server.port=8888 现在的问题是,我有两个环境和,并且我创建了和,根据spring文档,我需