【问题标题】:grails/mysql with docker composegrails/mysql 与 docker compose
【发布时间】:2017-07-16 21:47:12
【问题描述】:

我正在尝试在 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:通信链路故障

【问题讨论】:

标签: java grails jdbc docker docker-compose


【解决方案1】:

您需要将数据源配置为指向"jdbc:mysql://db:3306/dbname"

您可以使用生产环境的外部配置文件来执行此操作。 或者您可以从系统环境中读取主机和数据库名称的值。

Deploying grails application war to tomcat with docker and docker compose

【讨论】: