java - Grails/MySQL与 jetty worker 组成

标签 java grails jdbc docker docker-compose

我试图在docker中运行grails应用,并在某些mysql连接问题中继续运行。我不知道问题出在哪里。

这是我的docker-compose文件

version: "2"
   services:
      db:
       image: mysql:5.7
      volumes:
       - db_data:/var/lib/mysql
      restart: always
      environment:
          MYSQL_ROOT_PASSWORD: root2017
          MYSQL_DATABASE: dbname
          MYSQL_USER: Dbuser
          MYSQL_PASSWORD: passw
 grails:
   depends_on:
     - db
   ports:
     - "9001:9001"
   restart: always
   environment:
     DB_HOST: db:3306
     DB_PASSWORD: passw
volumes:
    db_data:

grails应用程序不会以以下错误开头:

错误18:08:05 org.apache.tomcat.jdbc.pool.ConnectionPool-无法创建池的初始连接。
grails_1 | com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

最佳答案

您将需要配置数据源以指向"jdbc:mysql://db:3306/dbname"
您可以使用生产环境的外部配置文件来执行此操作。
或者,您可以从系统环境中读取主机名和数据库名的值。

参见Deploying grails application war to tomcat with docker and docker compose

关于java - Grails/MySQL与 jetty worker 组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43101140/

相关文章:

jdbc - Apache 四郎 : Use ldap for user authentication and database for roles/permissions?

java - Microsoft Power Query M 公式语言到 SQL 查询的转换

java - Java程序中的Multiple Delete MSSQL删除查询

java - Servlet 是单例的设计原则是什么

java - 创建自定义 Jackson 注释

maven - 在Jenkins上构建和部署Grails应用

session - Grails Quartz 插件 : Call service from cron (Session = NULL)

java - 如何在 JasperReports 中指定断字

java - 创建一个按钮,即使应用程序暂停,该按钮仍保留在前台

grails - 什么是Grails的Ehcache TTL?